我正在创建一个包含Ajax功能的表单的wordpress插件。
我可以在调试时在控制台标签中看到如下的json数组。
注意:Ajax Call中的错误功能显示在结果下面:
Object {readyState: 4, responseText: "[{"id":"1","school_name":"Apollo Beach Elementary …lo Beach","rating":"A","type":"Elementary"}]Array", status: 200, statusText: "OK"}
这是 Ajax代码
function ajaxformschool() {
jQuery.ajax({
url: ajaxschoolajax.ajaxurl,
data: {'action':'ajaxschool_process'},
dataType: 'json',
type: "POST",
success: function(data) {
alert(data[0]);
},
error:function(exception){console.log(exception);}
});
}
调用函数的Html链接
echo '<a onclick="ajaxformschool();" style="cursor: pointer"><b>Search</b></a>';
Ajax操作函数
function ajaxschool_process() {
global $wpdb;
$data = $wpdb->get_results ("SELECT * FROM schools;");
echo json_encode($data);
die($data);
}
答案 0 :(得分:1)
不要在$data
函数中传递die()
:
$data = $wpdb->get_results ("SELECT * FROM schools;");
echo json_encode($data);
die();
die()尝试打印参数中传递的值,然后打印&#34; Array&#34;,因此jQuery无法解析JSON数据,因为它不是有效的JSON。
答案 1 :(得分:1)
请勿使用input[i*2] * input[i*2 + 1]
die()
答案 2 :(得分:0)
试试吧......
Ajax代码
function ajaxformschool() {
jQuery.ajax({
url: ajaxschoolajax.ajaxurl,
data: {'action':'ajaxschool_process'},
dataType: 'json',
type: "POST",
success: function(data) {
var result=eval(data);
alert(result.id);
},
error:function(exception){console.log(exception);}
});
Ajax操作函数
function ajaxschool_process() {
global $wpdb;
$data = $wpdb->get_results ("SELECT * FROM schools");
echo json_encode($data);
die();