【问题标题】:No output from (GET) Ajax Result From Php Array with json_encode来自带有 json_encode 的 Php 数组的 (GET) Ajax 结果没有输出
【发布时间】:2021-04-24 06:04:20
【问题描述】:

我有一个 GET 表单,它获取一个 Php 数组并 json 对其进行编码。我遇到的问题是没有显示成功数据。我希望成功地在警报或控制台中显示数据,但由于某种原因它不起作用。我尝试了很多选择。感谢您的帮助。

PS:我知道 GET 和所有文件都可以工作,因为当我得到脚本时,Ajax 响应结果会成功填充/附加一个表。我正在修改它。

这是带有 AJAX 的 php 索引文件:

<!doctype html>
<html>
<head>
    <title>Return JSON response from AJAX using jQuery and PHP</title>
    <link href="style.css" type="text/css" rel="stylesheet">
    <script src="jquery-3.1.1.min.js" type="text/javascript"></script>
</head>
<body>
        
<script>        
 $(document).ready(function() {
    $.ajax({
        url: 'ajaxfile.php',
        type: 'get',
        dataType: 'JSON',
        success: function(data) {
            var obj = jQuery.parseJSON(data);
            alert(obj.username);
        }
    });
});
</script>  
</body>
</html>

这里是查询数据库和编码/数组json的php文件:

<?php

$return_arr = array();

$sql = "SELECT * FROM users  ORDER BY NAME";
$result = $conn->query($sql);


// Check database connection first
if ($conn->query($sql) === FALSE) {
    echo 'database connection failed';
    die();
} else {
    while($row = $result->fetch_array()) {
        $id = $row['id'];
        $username = $row['username'];
        $name = $row['name'];
        $email = $row['email'];
  
        $return_arr[] = array("id" => $id,
                    "username" => $username,
                    "name" => $name,
                    "email" => $email);
    }
    
    // Encoding array in JSON format
    echo json_encode($return_arr);
}
?>

从 php 文件输出的 echo json_encode 数组如下所示(测试内容):

[{"id":"1","username":"jiten","name":"Jiten singh\t","email":"jiten9"},{"id":"2","username":"kuldeep","name":"Kuldeep","email":"kuldee"},{"id":"3","username":"mayank","name":"Mayank","email":"mayank"},{"id":"9","username":"mohit","name":"Mohit","email":"mohit"},{"id":"13","username":"mukesh","name":"Mukesh","email":"mukesh"},{"id":"6","username":"nitin","name":"Nitin","email":"niti"},{"id":"12","username":"palash","name":"Palash","email":"palash"},{"id":"7","username":"rahul","name":"Rahul singh","email":"rahul"},{"id":"10","username":"rohit","name":"Rohit singh","email":"rohit"},{"id":"8","username":"shreya","name":"Shreya","email":"shreyam"},{"id":"11","username":"sonarika","name":"Sonarika","email":"sonarika"},{"id":"5","username":"vijay","name":"Vijay","email":"vijayec"},{"id":"14","username":"vishal","name":"Vishal Sahu\t","email":"visha"},{"id":"4","username":"yssyogesh","name":"Yogesh singh","email":"yoges"}]

when I make the success result (data) and alert(data), this is what I get,empty objects

【问题讨论】:

    标签: javascript jquery ajax


    【解决方案1】:

    我发现该解决方案已经过测试并且可以正常工作。要在 Ajax 中回显/警告 Json_encoded php 数组,您需要在警告括号内添加“JSON.stringify(data)”,如下所示。

    <script>        
     $(document).ready(function(){
        $.ajax({
            url: 'ajaxfile.php',
            type: 'get',
            dataType: 'JSON',
            success: function(data){
             alert(JSON.stringify(data));
              
    
            }
        });
    });
    
    </script>  
    

    【讨论】:

      【解决方案2】:

      成功后尝试迭代对象数组:函数

          $(document).ready(function () {
              $.ajax({
                  url: 'ajaxfile.php',
                  type: 'get',
                  dataType: 'JSON',
                  success: function (data) {
                      var results = JSON.parse(data);
                      let output = "";
                      $.each(results, function (key, value) {
                          output += value.id + " " + value.username + " " + value.name + " " + value.email;
                      });
      
                      alert(output);
                  }
              });
          });
      

      【讨论】:

      • 感谢 Pramesh,但这不是我想要的。我只是想提醒一下结果。
      • 您在使用我的代码时是否在浏览器中遇到任何错误?
      • 响应 Pramesh 没有任何反应
      猜你喜欢
      • 2014-11-06
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多