从PHP响应中返回数据?

时间:2015-11-11 11:10:37

标签: php jquery ajax

我的AJAX请求就是这个 -

    $.ajax({
        type: "POST",
        url: "ajax/feed-check.php",
        dataType: "json",       
        data: {
            server: server,
        },  
        complete: function(data) {
            console.log(data);
            $('.Agencies').html('<p>'+data[0]+'</p>');
        }           
    })

上面的返回和数组如下所示

[{"feed_name":"example.zip","feed_time":"2015-10-16 00:00:24","feed_size":"1222","back_office"
:"example4","agencyID":"example2"},{"feed_name":"example2.zip","feed_time":"2015-10-16 08:20:00","feed_size"
:"3145","back_office":"example1","agencyID":"aaa"}]
    "

如果在AJAX请求中完成完整功能,我如何获取数据我试图像这样做

        complete: function(data) {
            $('.Agencies').html('<p>'+data[0]+'</p>');
        }           

但是我没有定义,有人可以告诉我哪里出错了吗?我需要获取所有数据。

我的PHP脚本 -

        $whereArray = array(
            "$where",
            "=",
            $_POST['server'],
        );

        $andArray = array(); //- Blank 'AND' array so that the 'get' call below doesn't fail if no 'ANDs' are passed.
        $orArray = array(); //- Blank 'OR' array so that the 'get' call below doesn't fail if no 'ORs' are passed.
        $order = array();

        $agencyfeed = paddyDB::getInstance("paddy_ms")->get('feed_files', $whereArray, $andArray, $orArray, $order);

        //print_r ($agencyfeed->results());
        $feeds = [];
        foreach ($agencyfeed->results() as $key) {

            $feeds[] = $key;
            //$key = $feeds['feed_name'];

        }

        echo json_encode($feeds);

正在查看错误的文件,derp。已使用相关详细信息更新了帖子

谢谢。

4 个答案:

答案 0 :(得分:2)

试试这个:

complete: function(data) {
                $.each(data, function(i, member) 
                {
                    $(".Agencies").html('<p>'+data[i].feed_name+'</p>');
                })

            }

答案 1 :(得分:1)

您是否告诉过您的ajax请求以期待JSON响应?如果没有,那么它不会解码JSON,你最终会得到一个字符串。使用console.log(数据)进行检查,你可能会得到一个字符串。

您可以通过在jQuery.ajax options中设置dataType: "JSON"来让jQuery自动将JSON转换为对象。

答案 2 :(得分:1)

请尝试下面的代码。 我使用嵌套的$ .each函数来解析你的json对象。 请参考jsfiddle - https://jsfiddle.net/sashant9/npq9efur/2/

**请告诉我,如果您想要的输出不同。

$.ajax({
        type: "POST",
        url: "ajax/feed-check.php",
        dataType: "json",       
        data: {
            server: server,
        },  
        complete: function(data) {
            $.each(data , function(index, value){
                  $.each(value, function(ind,val){
                        $('.Agencies').append('<p>'+val+'</p>');    
                  });
           });
        }           
    });

输出 - &gt;

example.zip

2015-10-16 00:00:24

1222

范例4

示例2

example2.zip

2015-10-16 08:20:00

3145

示例1

AAA

答案 3 :(得分:0)

感谢所有帮助,我现在找到了解决方案

        success: function(data) {
            $.each(data,function(k,v){
            var serverCont =  '<tr>';
                serverCont += '<td>'+v.feed_name+'</td>';
                serverCont += '<td>'+v.feed_date+'</td>';
                serverCont += '<td>'+v.feed_time+'</td>';
                serverCont += '<td>'+v.feed_size+'kb</td>';
                serverCont += '<td>'+v.agencyID+'</td>';
                serverCont += '</tr>';      
                thisServer.append(serverCont);                      
            });
        },