【问题标题】:PHP and Jquery's jsonPHP 和 Jquery 的 json
【发布时间】:2011-03-24 04:44:32
【问题描述】:

我的html文件:

    <script>
    $(document).ready(function() {  
        $.ajax({
            type: "POST",
            url: "search.php",
            data: "id=1",
            datatype: "json",
            success: function(msg){
                $('.result1').html(msg["name"]);
            }
        });  
    })
    </script>   

    <span class="result1"></span>

我的 php 文件:

    <?
    $a["name"] = 'john';
    echo json_encode($a);
    ?>

为什么名字 John 没有出现在类 result1 中?为什么?请帮帮我,我要疯了。

编辑:现在可以进行赏金吗?

【问题讨论】:

  • 如果您在 Firefox 中使用 Firebug 扩展程序,或在 Chrome 中使用开发者工具,您可以看到请求和响应,并查看从服务器返回的数据。
  • 它来了{"name":"john"},说明它很好,所以我做错了什么?

标签: php jquery json types


【解决方案1】:

dataType 参数有一个大写的 T。如果您更正它,它将起作用。

目前(默认情况下)尝试根据 mime 类型猜测响应格式,因此可能默认为 html - 在 firebug 中调试您可以看到成功回调的 msg 参数是一个包含JSON。

【讨论】:

    【解决方案2】:

    不要分散您解决此问题的注意力。但是您可能想查看 .getJSON() 函数http://api.jquery.com/jQuery.getJSON/。如果您只是获取一些数据,它会更干净一些。

    另外,看看JSON format,我觉得data: "id=1"应该是data: "{id:1}"

    在响应方面,请记住它需要多条记录,因此请尝试:msg[0].name;,查看each() function 以处理多条记录。

    【讨论】:

      【解决方案3】:

      我认为你应该使用:

       $('.result1').html(msg.name);
      

      【讨论】:

      • 那不会有任何区别。
      • 在 JavaScript 中,点表示法通常可以代替数组表示法。这就是像 document.forms["myForm"].elements["name"].value 这样的东西可以缩短为 document.myForm.name.value 的方式(不是这样做是个好主意)。
      猜你喜欢
      • 2011-03-29
      • 1970-01-01
      • 2012-03-27
      • 2010-11-18
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 2017-09-14
      相关资源
      最近更新 更多