Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Wordpress AJAX不返回自定义作者元数据_Jquery_Ajax_Wordpress - Fatal编程技术网

Jquery Wordpress AJAX不返回自定义作者元数据

Jquery Wordpress AJAX不返回自定义作者元数据,jquery,ajax,wordpress,Jquery,Ajax,Wordpress,现在,我正在尝试使用AJAX检索用户单击作者姓名时的自定义作者元数据 现在的情况是,我的AJAX没有返回任何内容 我已经测试了我发送的变量,并且正确填写了,但是我没有从Wordpress得到任何响应 任何帮助都将不胜感激 需要注意的是,PHP位于我的functions.PHP文件中,其中有另一个函数,用于创建和保存我需要从中访问信息的自定义作者元字段 谢谢, 猎人 PHP jQuery $(document).ready(function() { $('.author').click(f

现在,我正在尝试使用AJAX检索用户单击作者姓名时的自定义作者元数据

现在的情况是,我的AJAX没有返回任何内容

我已经测试了我发送的变量,并且正确填写了,但是我没有从Wordpress得到任何响应

任何帮助都将不胜感激

需要注意的是,PHP位于我的
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) { ... }
});