我有以下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"];
$literatureBooks = library.closets.shelves.books;
$comedyBooks = library.closets.shelves.books;
$historyBooks = library.closets.shelves.books;
if ($literature) {
echo $literatureBooks;
} elseif ($comedy) {
echo $comedyBooks;
} elseif ($history) {
echo $historyBooks;
}
?>和以下javascript:$(Document).ready(函数(){$(“#224”)).click(函数()){
$.ajax({
type:'post';
url:'library.php';
data:'literature';
dataType:'json';
success: function(data)
{
for (var i in data){
$("#books").append('literature Books are'+data[i]+<'br/'>);
}
}
});
});
$("#comedy").click(function(){
$.ajax({
type:'post';
url:'library.php';
data:'comedy';
dataType:'json';
success: function(data)
{
for (var i in data){
$("#books").append('comedy Books are'+data[i]+<'br/'>);
}
}
});
});
$("#history").click(function(){
$.ajax({
type:'post';
url:'library.php';
data:'history';
dataType:'json';
success: function(data)
{
for (var i in data){
$("#books").append('history Books are'+data[i]+<'br/'>);
}
}
});
});
});当您单击其中一个按钮时,html代码是三个按钮,例如,所有图书in都应该打印(b1、b2、b3).i已经编写了代码,但我不知道如何访问数组库中的元素簿。所以我的问题是声明这些变量:
$literatureBooks=library.closets.shelves.books;
$comedyBooks=library.closets.shelves.books;
$historyBooks=library.closets.shelves.books;发布于 2014-06-24 08:49:43
要用PHP处理JSON,必须将其转换为PHP数据结构。在此之后,您可以访问您需要的任何东西:
$library = json_decode($library, true);
$literatureBooks = $library['closets'][0]['shelves']['books'];
$comedyBooks = $library['closets'][1]['shelves']['books'];
$historyBooks = $library['closets'][2]['shelves']['books'];您也可以将$library转换为对象,而不是数组:
$library = json_decode($library);
$literatureBooks = $library->closets[0]->shelves->books;
$comedyBooks = $library->closets[1]->shelves->books;
$historyBooks = $library->closets[2]->shelves->books;对于ajax调用,请使用如下所示:
$.ajax({
type:'post', // <----- Use comas here, not semicolon
url:'library.php',
data:'closet=literature',
// ...然后,在PHP中,您可以跳过整个if ($literature) {}块,只需回显正确的衣柜:
$closet = $_POST['closet']; # You should sanitize this
echo $($closet . 'Books');https://stackoverflow.com/questions/24381943
复制相似问题