如何在jquery中从json获取结果

时间:2018-04-07 15:51:57

标签: php jquery json ajax

我是Javascript和Json的新人 我需要在这个Jquery中得到像这个例子的输出 // 我需要的结果示例:

sc.status(['4_3'], 'unavailable');
sc.status(['2_4'], 'unavailable');

和..

Jquery代码:

setInterval(function() {
    $.ajax({
        type     : 'get',
        url      : 'test.php',
        dataType : 'json',
        success  : function(response) {
            //iterate through all bookings for our event 
            $.each(response.bookings, function(index, booking) {
                //find seat by id and set its status to unavailable
                sc.status(booking.seat_id, 'unavailable');
            });
        }
    });
}, 10000); //every 10 seconds

我使用json_encode将数据库值更改为php文件中的json输出(test.php)

php来源:

<?php

function checkrezerv() {
    $dbhost="localhost";
    $dbusername="root";
    $dbpassword="";
    $database="test";
    $databse_info = mysqli_connect( $dbhost,$dbusername,$dbpassword,$database );  
    $chreservednsql="SELECT seat_id FROM reserve_tbl WHERE reserved='1' AND show_id='1'";
    mysqli_set_charset($databse_info, "utf-8");
    mysqli_query($databse_info,"SET NAMES 'utf-8'");
    $row=mysqli_query($databse_info,$chreservednsql);
    if ($row->num_rows > 0) {
        $res=mysqli_fetch_array($row);
        echo json_encode($res);
    }
    else {
        $emptyc="";
        echo json_encode($emptyc);
    }
}
checkrezerv();
?> 

和php文件的结果在这里:

{"0":"1_5","seat_id":"1_5"}

我无法搜索和解决问题:(

1 个答案:

答案 0 :(得分:0)

在服务器端,您只获得第一行,更改test.php如下:

if ($row->num_rows > 0) {
    $rows = array();
    while($res = mysqli_fetch_array($row)) $rows[] = $res;
    echo json_encode($rows);
}
else {
    $emptyc=array();
    echo json_encode($emptyc);
}

在js方面:

$.ajax({
    type     : 'get',
    url      : 'test.php',
    dataType : 'json',
    success  : function(response) {
        //HERE
        $.each(response, function() {
            sc.status(this['seat_id'], 'unavailable');
        });
    }
});