【发布时间】:2014-09-08 12:28:32
【问题描述】:
我需要使用 ajax 从数据库中检索数据。 ajax 请求成功,但我没有从数据库中获取任何数据。 JS
jQuery("#loadF").change(function(){
jQuery.ajax({
url: "http://localhost/wordpress/wp-admin/admin-ajax.php",
dataType: 'json',
type: 'POST',
data: {
'action' : 'my_load_filter',
'name' : 'ada',
'value' : $( '#loadF option:selected' ).val()
},
success: function(data) {
alert('Success!');
}
});
});
PHP- 我在这里调用回调
//Load data
add_action( 'wp_ajax_my_load_filter', 'my_action_load_filter_callback' );
function my_action_load_filter_callback()
{
global $wpdb;
$filterValue=$_POST['value'];
$loadFilter = $wpdb->get_row( $wpdb->prepare("SELECT something FROM tabel WHERE name= %s",$filterValue ));
foreach ($loadFilter as $loadFilter_preference)
{
echo $loadFilter_preference;
}
die();
}
它不起作用,有人知道我的代码有什么问题吗?
我在 WP 中搜索,DB 没有拼写错误。
编辑
我发现了错误,但我无法修复它:
如果 Ajax 请求在 wp-admin/admin-ajax.php 中失败,则响应 将是 -1 或 0,具体取决于失败的原因。 此外,如果请求成功,但 Ajax 操作没有 匹配一个用 add_action('wp_ajax_(action)', ...) 或 add_action('wp_ajax_nopriv_(action)', ...),然后 admin-ajax.php 将响应 0
如果您需要更多信息,请询问我!
【问题讨论】:
-
您收到
success警报了吗? -
在 phpMyAdmin(或类似的)中运行 SELECT 语句是否会返回任何内容?如果你 var_dump($loadFilter);分配后?
-
是的,我收到成功警报,响应为 0。
-
我也尝试了另一种说法,但我没有得到任何东西!它没有向我展示任何关于 var_dump 的信息。我想在不同的元素中获得响应,这样我就可以看到它从 var_dump 返回的内容,但我不知道该怎么做。我是ajax的新手。但首先我想从数据库中获取任何信息,以便进一步继续。
-
你如何确定响应是什么?