【问题标题】:How to fix problem with json_encode() via an xml request如何通过 xml 请求解决 json_encode() 的问题
【发布时间】:2019-08-19 12:27:22
【问题描述】:

所以我的代码有问题。

这是我的 index.html。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
</head>
  <body>
    <div id="container">
    </div>
    <script>
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          //Nachrichten aus JSON zurueckparsen
          var messages = JSON.parse(this.responseText);
          //alle Nachrichten durchgehen
          messages.forEach(function(message) {
            var container = document.getElementById('container');
            var messageElement = document.createElement('div');
            messageElement.id = 'message'+message.id;
            messageElement.innerHTML = message.message;
            container.appendChild(messageElement);
            //Onclick Handler für die message hinzufügen
            messageElement.onclick=function() {
              alert('message '+message.id+' clicked');
            }
          });
        }
      };
      xhttp.open("GET", "login.php", true);
      xhttp.send();
    </script>
  </body>
</html>

这是我的 login.php:

<?php
  $ar = array();
  for ($i = 0; $i < 10; $i++) {
    array_push($ar, array("test", "123"));
  }
  var_dump(json_encode($ar));
?>

就像你看到的那样,我正在尝试使用 array_push 方法制作 10 个数组。但是当我打开索引时,它会显示“未定义”并且 10 次。请帮帮我。

【问题讨论】:

  • $ar 不包含带有idmessage 的任何内容。为什么var_dump

标签: javascript php html json xml-parsing


【解决方案1】:

它说“未定义”,因为在您的响应中没有定义“id”和“message”的键。

您需要设置响应键。试试这个。

<?php
  $ar = array();
  for ($i = 0; $i < 10; $i++) {
    $ar[] = array("id"=>$i, "message"=>"test $i");
  }
  echo json_encode($ar);
?>

【讨论】:

    【解决方案2】:

    试试这个。

    在 PHP 中,您不需要使用 array_push 方法向数组添加新元素。 相反,您使用这种模式,因为 PHP 会自动扩展数组。

    $ar[] = [];

    <?php
      $ar = [];
      for ($i = 0; $i < 10; $i++) {
        $ar[] = ['test', '123'];
      }
      var_dump(json_encode($ar));
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-03
      • 1970-01-01
      • 1970-01-01
      • 2022-06-12
      • 2020-05-22
      • 2020-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多