无法打印ajax成功函数数据

时间:2016-12-14 14:35:21

标签: php json ajax wordpress

我正在创建一个包含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);
}

3 个答案:

答案 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();