Javascript WordPress AJAX问题
我一直在尝试将一个数组从PHP发送到javascript,以便显示数据库中的搜索结果。我已经将数组转换为JSON,现在似乎无法检索它。我从未使用过AJAX,但我有一些在这里工作的人使用过AJAX,尽管他们没有花太多时间在AJAX上,但没有人能够解决确切的问题Javascript WordPress AJAX问题,javascript,php,json,ajax,wordpress,Javascript,Php,Json,Ajax,Wordpress,我一直在尝试将一个数组从PHP发送到javascript,以便显示数据库中的搜索结果。我已经将数组转换为JSON,现在似乎无法检索它。我从未使用过AJAX,但我有一些在这里工作的人使用过AJAX,尽管他们没有花太多时间在AJAX上,但没有人能够解决确切的问题 $(document).ready( function() { var data = {}; $.ajax({ type: 'GET', url: '../wp-content/pl
$(document).ready( function() {
var data = {};
$.ajax({
type: 'GET',
url: '../wp-content/plugins/advantage-geo/get_data.php',
data: "data",
dataType: 'json',
cache: false,
success: function(result) {
alert(result.d);
console.log(result);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
});
这是来自JS文件的调用。它以}结尾;但是它没有被带到代码块中,所以我删除了它
下面是PHP的示例
<?php
header("Content-type:json");
global $wpdb;
$sql = "SELECT * FROM wptest_geo_db";
$result = $wpdb->get_results($sql) or die(mysql_error());
echo json_encode($result);
print_r(json_decode($person_array));
print_r($person_array);
?>
JSON是正确创建的,我可以在php文件的页面上显示它。AJAX调用抛出了一个500内部服务器错误,我不知道为什么。我的回答可能不会直接提到500服务器错误,但仔细阅读我的回答可能会帮助您解决这个问题 AJAX调用不需要将HTTP请求类型作为JSON发送,所以只需要将编码的JSON作为字符串输出。AJAX会将其标识为JSON数据,您甚至不需要告诉jQueryAjax您需要JSON数据,它会标识
<?php
// it's not required that the response HTTP request is of type JOSN
// just ignore this
//header("Content-type:json");
global $wpdb;
$sql = "SELECT * FROM wptest_geo_db";
$result = $wpdb->get_results($sql) or die(mysql_error());
echo json_encode($result);
// you've echo-ed the encoded JSON just above
// why would you print the arrays?
// I assume it's for testing purpose
//print_r(json_decode($person_array));
//print_r($person_array);
?>
现在,转到WordPressAjax。你这样做完全不对。请阅读本文档,了解如何在WordPress中处理AJAX。测试并试用链接的AJAX教程/文档中的内容,如果您在尝试时遇到任何问题,请返回此处。显示PHP中的错误-^他说了什么。500错误意味着这是一个服务器错误,因此您需要查看实际的错误消息。试试链接上的建议。你也可以检查你的服务器错误日志。你的PHP失败了,检查Web服务器的错误日志。你考虑WordPress处理Ajax的方法吗?这里是Wordpress有自己独特的ajax方式的链接,从无冲突DOM ready handlerAs开始,每个文档中都应该包括wp_die;在本例的最后,@Musk您是对的,但这是WP-AJAX实现的一部分。现在,这还不算太近