Php stdclass对象返回到ajax

时间:2014-09-04 22:18:35

标签: javascript php ajax json object

我最近刚开始使用ajax,我遇到了一个小问题。 代码如下:

  1. 输入表单 - >对AJAX的价值。
  2. AJAX将表单值发送到将请求发送到服务器的php函数。
  3. 服务器返回带有查询结果的stdClass对象。
  4. PHP将结果作为responseText发送回AJAX以显示在webapp上。
  5. 问题:

    stdClass对象是我现在所困的PHP对象,无法更改相关服务器的输出格式。

    我已经尝试了所有可能的数组/对象/变量 - 我能想到的组合,并尝试对对象进行json_encode。但是,此解决方案仅返回一组长字符串,对象上的var_dump也是如此。我可能是错误的,完全没有经历过json。

    我需要一些关于如何以我可以用JavaScript输出的格式将对象传递给AJAX的指导。

    AJAX代码:

    function checkSerial(serial) {
    
            console.log(serial);
    
          if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
          } else {  // code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
    
          xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState==4 && xmlhttp.status==200) {
              $responseText=xmlhttp.responseText;
              console.log($responseText);
            }
          }
    
          xmlhttp.open("GET","../module/getdevice.php?serial="+serial, true);
          xmlhttp.send();
    
    }
    

    输出的stdClass。对于删失的值感到抱歉。

    object(stdClass)#5 (15) {
      ["censored"]=>
      string(12) "censored"
      ["censored"]=>
      string(29) "censored"
      ["censored"]=>
      string(1) "censored"
      ["censored"]=>
      string(8) "censored"
      ["censored"]=>
      string(7) "censored"
      ["censored"]=>
      string(0) "censored"
      ["censored"]=>
      string(56) "censored"
      ["censored"]=>
      string(47) "censored"
      ["censored"]=>
      string(47) "censored"
      ["censored"]=>
      string(30) "censored"
      ["censored"]=>
      string(14) "censored"
      ["censored"]=>
      string(0) "censored"
      ["censored"]=>
      string(0) "censored"
      ["censored"]=>
      string(0) "censored"
      ["censored"]=>
    

    希望这篇文章不重复,我已尽力积极寻找解决方案。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

您已经在服务器端拥有解决方案:json_encode()

要将javascript中的长字符串转换为可以使用的对象,需要解析它:

console.log( JSON.parse($responseText) );