[英]Retrieving PHP JSON data through AJAX - correct structure of data request
我有一个名为terminal_tester.php的PHP文件,该文件运行许多终端操作,并使用以下命令创建json数据
echo json_encode($jsonData);
数据看起来像这样
{"source":"Betting Tips","published":"2015-05-20 15:20:22;","status":true,"eventIDs":["27448131","27448900"],"TipsTB":"TIP 1 MLADENOVIC TO BEAT RISKE\",\"TIP 2 DOLGOPOLOV TO BEAT GULBIS\"]","TipsTW":"[]"}
我现在想用此数据填充HTML文件,但是在理解Ajax数据输入的正确格式时遇到了麻烦。 我正在尝试在我的html文件的脚本区域中进行以下操作
function callbackData(){
return $.ajax({
dataType: 'JSON',
url: 'terminal_tester.php',
type: 'GET',
cache: false,
data: jsonData
});
};
callbackData().success(function (data) {
document.getElementById("phpReturn2").innerHTML = jsonData
document.getElementById("phpReturn3").innerHTML = eventIds
document.getElementById("phpReturn4").innerHTML = published
});
但我没有得到任何回应。 我进行了搜索,我认为问题出在ajax请求的data:区域,但也由于PHP文件中需要GET命令而感到困惑。 有人可以解释如何正确构造ajax请求吗?
编辑
terminal_tester.php具有很多功能,这些功能最后结合在一起来构建json数据,php文件的最后一部分看起来像这样
$jsonData = createJson($eventIds, $TipsTB, $TipsTW, $status);
echo json_encode($jsonData);
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($jsonData));
fclose($fp);
首先,我认为您的json数据不正确。 应该像这样-
{"source":"Betting Tips","published":"2015-05-20 15:20:22","status":true,"eventIDs":["27448131","27448900"],"TipsTB":["TIP 1 MLADENOVIC TO BEAT RISKE","TIP 2 DOLGOPOLOV TO BEAT GULBIS"],"TipsTW":"[]"}
其次,普通的jquery ajax语法是-
$.ajax({
dataType: 'JSON', //This means data which come back from terminal_tester.php should be in json format.
url: 'terminal_tester.php',
type: 'GET', // If you are using get request then you should get data by $_GET[]
cache: false,
data: {"jsonData":jsonData}, // Edited this from your code.
success:function(data){ //This data is coming from terminal_tester.php
alert(data.result);
}
});
在terminal_tester.php中,应该像这样-
if(isset($_GET['jsonData'])){
$jsonData = $_GET['jsonData']; // GET array (Edited)
// your operation with $jsonData
// In the end, below json will be get in success data.
echo json_encode(array('result'=>true));
}
希望这对您有帮助!!
$ .ajax()。success()具有用于访问从GET请求发送回的数据的data参数。 eventIds和published都是数据的属性。
callBackData().success(function (data) {
document.getElementById("phpReturn2").innerHTML = jsonData;
document.getElementById("phpReturn3").innerHTML = data.eventIds;
document.getElementById("phpReturn4").innerHTML = data.published;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.