通过AJAX检索PHP JSON数据-正确的数据请求结构
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请求的数据区域,但我也对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()有一个data参数,用于访问从GET请求发回的数据。eventIds和published都是data的属性。
callBackData().success(function (data) {
document.getElementById("phpReturn2").innerHTML = jsonData;
document.getElementById("phpReturn3").innerHTML = data.eventIds;
document.getElementById("phpReturn4").innerHTML = data.published;
});
相关文章:
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- node.js请求数据事件未在CORS ajax调用中触发
- Ajax请求返回空的数据字符串,但首先得到了正确的数据
- Javascript-如何让脚本与Ajax请求的数据一起运行
- ajax请求成功,但可以'我看不到我的数据
- 一台特定计算机的Ajax请求数据未定义/失败
- 如何在具有某些 UI 视图的状态中管理工厂单个请求数据
- 可以't从AJAX请求中筛选数据
- $.每个jquery循环打印一个“;未定义的“;对于getJSON请求后的每个元素,网格数据都会完美地打印出来
- 在检索数据时是否可以停止图像加载请求
- 尝试发布大型JSON数据时出现错误请求错误
- 首次加载 json 数据请求并在主页中显示相同的数据
- 当有多个 React.js 组件实例具有数据请求时如何处理缓存
- 转换HTML画布内容,在laravel后端向其发送角度形式的数据请求
- 如何用ajax发送multipart/form数据请求
- jQuery regex数据请求错误
- Angular-多个$http.get数据请求
- 向余烬数据请求追加参数
- 数据请求有时是异步的
- 通过AJAX检索PHP JSON数据-正确的数据请求结构