繁体   English   中英

Ajax调用json undefined Object:object

[英]Ajax call json undefined Object : object

json值不断返回unidentified或根本不显示

PHP代码

$index=0;

while($row = $result->fetch_array()){

    $index++;
    $data=array(

        array(

            $index=>$row['menuName']
        )

    );


  }

    echo json_encode($data);
}

JQUERY AJAX

<script>
         $(document).ready(function(){
              $.ajax({
                    type: 'GET',
                    data: {loadpage: 'table'},
                    dataType: 'json',
                    url: 'addtable.php',
                    success: function(data){        

                        $('.navbar ul').append('<li><a href="#" class="table">'+data[0]+'</a></li>');
                } 
                }); //ajax request
             });
    </script>

json可以以正确的格式显示。 当我将jquery更改为data [0]时,它将显示对象Object;如果我执行data [1或更高版本],它将给我未定义的信息。 我不知道我在做什么错,我什至尝试过这样做:data [0] .1,它什么也不显示。

任何帮助将不胜感激。

首先要做的是修复响应请求的PHP脚本部分。

创建有效的JSON字符串响应。 最简单的方法是首先创建一个容器(一个数组)。

第二个是继续将提取的行推入其中。 最后,最后使用json_encode

在循环内时不要编码:

简单的例子:

// initialize container
$data = array();

// the pushing of rows
while($row = $result->fetch_array()) {
    $data[] = $row; // push the whole row
}

// finally, echo it to into a JSON string
echo json_encode($data);
// don't put me inside the WHILE

PHP注意: 如果这是mysqli ,我建议改用->fetch_assoc()或仅使用->fetch_array(MYSQLI_ASSOC)标志

在您的AJAX脚本中,只需按照通常的方式处理响应:

<script>
 $(document).ready(function(){
      $.ajax({
        type: 'GET',
        data: {loadpage: 'table'},
        dataType: 'json',
        url: 'addtable.php',
        success: function(data){
            // every each row, create an LI element with an anchor
            $.each(data, function(index, element){
                $('.navbar ul').append('<li><a href="#" class="table">'+element.menuName+'</a></li>');
                // just use the column names as the properties in your data response that came from PHP
            });       


        } 
    }); 
});
</script>

如果运行了,应该会在标记中产生如下内容:

<li>
    <a href="#" class="table">Table1</a>
</li>
<li>
    <a href="#" class="table">Table2</a>
</li>
<li>
    <a href="#" class="table">Table4</a>
</li>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM