使用json和ajax进行解析
Parsing with json and ajax
我有以下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");
});
});
相关文章:
- 神秘的ajax json请求问题jQuery
- Ajax json到for循环中
- 404在Jquery AJAX JSON PHP POST上找不到
- 如何在phonegap应用程序中处理Ajax json响应
- Ajax/JSON请求php处理页面
- 无法使用jquery/ajax/json从mysql获取数据来选择框
- Jquery更新到1.10.2后,Jquery Ajax Json对象未显示
- 根据ajax json响应更新html表
- 谷歌地图标记不显示ajax json数据
- 反伪造令牌和Ajax JSON.stringify Post不起作用
- 向ajax json请求添加缓存
- Ajax-JSON不会只在PATCH中发送
- 显示来自ajax json解析的数据时出现问题
- 从 Ajax-JSON 中提取元素
- 通过Javascript/AJAX/JSON/PHP将数据从JQuery传递到数据库
- 简单的jQuery AJAX JSON调用
- Ajax JSON 添加尾随冒号
- PHP REST server - AJAX - JSON
- 将字符串传递给 AJAX/Json
- 从 JavaScript 获取数据 从 AJAX (JSON) 响应获取数据