Jquery Wordpress AJAX不返回自定义作者元数据
现在,我正在尝试使用AJAX检索用户单击作者姓名时的自定义作者元数据 现在的情况是,我的AJAX没有返回任何内容 我已经测试了我发送的变量,并且正确填写了,但是我没有从Wordpress得到任何响应 任何帮助都将不胜感激 需要注意的是,PHP位于我的Jquery Wordpress AJAX不返回自定义作者元数据,jquery,ajax,wordpress,Jquery,Ajax,Wordpress,现在,我正在尝试使用AJAX检索用户单击作者姓名时的自定义作者元数据 现在的情况是,我的AJAX没有返回任何内容 我已经测试了我发送的变量,并且正确填写了,但是我没有从Wordpress得到任何响应 任何帮助都将不胜感激 需要注意的是,PHP位于我的functions.PHP文件中,其中有另一个函数,用于创建和保存我需要从中访问信息的自定义作者元字段 谢谢, 猎人 PHP jQuery $(document).ready(function() { $('.author').click(f
functions.PHP
文件中,其中有另一个函数,用于创建和保存我需要从中访问信息的自定义作者元字段
谢谢,
猎人
PHP
jQuery
$(document).ready(function()
{
$('.author').click(function()
{
var id = $(this).attr('id');
$.ajax({
type: 'POST',
action: 'student_meta_info',
studentID: id,
dataType: 'json',
success: function(data)
{
var review = data.review;
var weightloss = data.weightloss;
var gained = data.gained;
alert(data);
alert(review);
alert(weightloss);
alert(gained);
}
});
});
});
您需要在数据类型之后指定WordPress AJAX url:
url: ajax_object.ajax_url,
要获取作为变量的url,您必须,例如:
add_action( 'wp_enqueue_scripts', 'so16523111_wp_enqueue_scripts' );
function so16523111_wp_enqueue_scripts() {
wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my_script.js', array( 'jquery' ), '20130513', true );
// in javascript, object properties are accessed as ajax_object.ajax_url, ajax_object.we_value
wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
另外,将要发送的数据包装为数据参数
data: {action:'student_meta_info',studentID:id},
。。。并使用response
检查是否成功:
success: function(response)
此外,还需要调整回调和ajax挂钩以反映操作:
add_action( 'wp_ajax_nopriv_student_meta_info', 'get_student_meta_info' );
add_action( 'wp_ajax_ajax_student_meta_info', 'get_student_meta_info' );
最后,您必须在noconflict模式下使用jQuery:
jQuery(document).ready(function($)
在functions.php文件中,您没有将钩子附加到正确的函数(是
get_student\u meta\u info
,而不是student\u meta\u info
):
在JavaScript代码(AJAX调用)中:
希望它有帮助。不是一个答案,但是当你没有获取那么多信息时,我会考虑在页面负载上打印所有东西,并用JS切换能见度。非常感谢。事实上,现在有一个bug。我现在得到所有空值。为了确保,我应该在哪里添加php来本地化我的脚本?现在,它在标题中。工作过一次,然后就破产了。那么,我把它放在哪里呢?enqueue+localize函数应该放在WP主题的
functions.php
文件中
jQuery(document).ready(function($)
add_action( 'wp_ajax_nopriv_ajax_request', 'get_student_meta_info' );
add_action( 'wp_ajax_ajax_request', 'get_student_meta_info' );
var data_to_send: {
action: 'ajax_request', // This is how you call it in the add_action hooks
studentID: id,
...
}
$.ajax({
data: data_to_sent,
success: function(r) { ... }
});