使用json和ajax进行解析

Parsing with json and ajax

本文关键字:ajax json 使用      更新时间:2023-09-26

我有以下php页面:

<?php 
$library=
'{"closets":[
             {"id":"001","theme":"literature","shelves":
                                                           {
                                                            "books":    [{"id":"b1","genre":"english Literature"},
                                                                     {"id":"b2","genre":"arabic literature"},
                                                                     {"id":"b3","genre":"french literature"}  
                                                                        ]
                                                           }
             },
             {"id":"002","theme":"comedy","shelves":{
                                                      "books":[{"id":"b11","genre":"english comedy"},
                                                               {"id":"b22","genre":"arabic comedy"},
                                                               {"id":"b33","genre":"french comedy"}  
                                                              ]
                                                     }
             },
             {"id":"003","theme":"history","shelves":{
                                                       "books":[{"id":"b11","genre":"english history"},
                                                                {"id":"b22","genre":"arabic history"},
                                                                {"id":"b33","genre":"french history"}  
                                                                ]
                                                      }
             }
            ]
}';
$literature=$_POST["literature"];
$comedy=$_POST["comedy"];
$history=$_POST["history"];
$library = json_decode($library, true);
$literatureBooks = $library['closets'][0]['shelves']['books'];
$comedyBooks     = $library['closets'][1]['shelves']['books'];
$historyBooks    = $library['closets'][2]['shelves']['books'];
if($literature)
{
    echo $literatureBooks;
}
elseif ($comedy){
echo $comedyBooks;
}
elseif($history){
echo $historyBooks;
}
?>

和以下javascript:

$(document).ready(function(){

$("#literature").click(function(){
$.ajax({
    type:'post',
    url:'jsonTesting.php',
    data:{/*don'tknow what to write*/},
    success: function(data)
    {
        for (var i in data){
            $("#books").append('literature Books are'+data[i]+<'br/'>);
        }
    }

});
  });   
$("#comedy").click(function(){
$.ajax({
    type:'post',
    url:'jsonTesting.php',
    data:'/*dont know what to write*/',
    success: function(data)
    {
        for (var i in data){
            $("#books").append('comedy Books are'+data[i]+<'br/'>);
        }
    }

});
}); 
$("#history").click(function(){
$.ajax({
    type:'post',
    url:'jsonTesting.php',
    data:'/*dont know what to write*/',
    success: function(data)
    {
        for (var i in data){
            $("#books").append('history Books are'+data[i]+<'br/'>);
        }
    }

});
}); 
});

程序是这样的:当我点击文学按钮时,所有主题文学的书都显示出来,喜剧和历史等等。我的问题是在ajax中的数据。我被要求解析对象库,排除主题文学、喜剧和历史书籍,并将它们放入数据中。怎么会这样呢?

用户问题不够清楚。我想这是你想要的。

你可以用jQuery Ajax请求

$.post("jsonTesting.php",{"literature":1},function(data){
     //on success
},"json");

在php中使用isset()检查是否设置了post变量

if(isset($_POST["literature"]))
     $literature=$_POST["literature"]

整个代码

修改php代码

if($literature)
{
     echo json_encode($literatureBooks);
}
elseif ($comedy){
     echo json_encode($comedyBooks);
}
elseif($history){
     echo json_encode($historyBooks);
}

javascript代码

$(document).ready(function(){
$("#literature").click(function(){
    $.post("jsonTesting.php",{"literature":1},function(data){
        if(data)
        {
            for (var i=0;i<data.length();i++)
            {
                $("#books").append('literature Books are'+data[i].id+" "+data[i].genre+<'br/'>);
            }
        }  
    },"json");
});
$("#comedy").click(function(){
    $.post("jsonTesting.php",{"comedy":1},function(data){
        if(data)
        {
            for (var i=0;i<data.length();i++)
            {
                $("#books").append('Comedy Books are'+data[i].id+" "+data[i].genre+<'br/'>);
            }
        }  
    },"json");
});
$("#history").click(function(){
    $.post("jsonTesting.php",{"history":1},function(data){
        if(data)
        {
            for (var i=0;i<data.length();i++)
            {
                $("#books").append('history Books are'+data[i].id+" "+data[i].genre+<'br/'>);
            }
        }  
    },"json");
});
});