来自ajax中查询的循环Json中的错误?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (76)

我试图用ajax检索BD的信息。 问题是,当我从脚本php收到数据时,它发送给我一个json文件,但我不能打印值,这是我的代码。

JS:

$(document).ready(()=>{

    $('table').on("click", "p",  function(){
        let value = $(this).attr('value')
        if (value=='true') {
            $(this).addClass('disabled')
            let data = $(this).attr('data-value')
            var info = {
                "numSelection":data,
                "sort": "97"
            }
            $.ajax({
                data:info,
                url:"js/service.php",
                type:"post",
                beforeSend:function(){
                    console.log("Estamos en proceso con ajax")// Here we are fine
                }
            }).done(function(data){
                console.log(data)//this print the json file in console 
                                correctly
                $.each(data,function(i,item){//here is the error in console
                    console.log("Index: "+i)
                    console.log("Item: "+item)
                })              

            })          
        }
    });
});

在此步骤中,我在控制台中收到此错误:

未捕获的TypeError:不能使用'in'运算符来搜索json文件的内容中的'957'

这是我的PHP脚本与sql

<?php 
// var_dump();
// error_reporting(E_ERROR | E_WARNING | E_PARSE);
include('conn.php');
$sql = "SELECT * FROM participantes WHERE sorteos_id=".$_POST['sorteo'].";";
$result = mysqli_query($conn, $sql);
$resultado = mysqli_fetch_array($result);
$enviar = array();
if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        $enviar[]=$row;
    }
} else {
    echo "0 results";
}

echo json_encode($enviar);
?>

如果我不以json格式发送信息,它将以数组形式发送,但会显示恼人的消息

注意:第19行的C:\ UwAmp \ www \ testing \ js \ service.php中的数组到字符串转换

       排列

我是新编码所以我接受任何建议

提问于
用户回答回答于

非常感谢你们帮我解决这个问题。 但他们给了我很多想法,所以我找到了答案......

我的错误是,不要指定我正在等待的格式,只需添加dataType:“json in the config of

$.ajax({
  data: info,
  url: "js/service.php",
  type: "post",
  dataType: "json", //this to receive json
  beforeSend: function() {
    console.log("Estamos en proceso con ajax")
  }
}).done(function(data) {
  console.log(data)
  $.each(data, function(i, item) {
    console.log("Index: " + i)
    console.log("Item: " + item)
  })

})

php

$result = mysqli_query($conn, $sql);
    $resultado = mysqli_fetch_array($result);
    $enviar = array();
    if (mysqli_num_rows($result) > 0) {
        // output data of each row
        while($row = mysqli_fetch_assoc($result)) {
            $enviar[]=$row;
        }
    } else {
        echo "0 results";
    }
    echo json_encode($enviar);//this to send json

扫码关注云+社区

领取腾讯云代金券