【问题标题】:jQuery $.post() function difficulty not displaying result?jQuery $.post() 函数难以显示结果?
【发布时间】:2012-06-22 02:50:00
【问题描述】:

我正在使用 jQuery 的 $.post 函数从 php 文件中检索一些数据,但返回的数据似乎没有显示?这是我得到的。

Javascript 代码:

$(document).ready(function(){
$("#import").click(function(){
        //This code works when uncommented, used for debugging.
        /*var x = "tester";
        $('input[name=title]').val(x);*/

        $.post("import.php", function(data){
            $('input[name=title]').empty().val(data.name); // John
            $('input[name=subtitle]').empty().val(data.time); //  2pm
            }, "json");
    });
});

PHP import.php 代码:

<?php
    $my_array = array("name"=>"John","time"=>"2pm");
    echo json_encode($my_array); 
?>

我错过了什么愚蠢的事情,或者我做错了。我对 javascript/jquery 还很陌生。

【问题讨论】:

  • 如果您将console.log(data)alert(data.name) 作为回调的第一行,您会得到什么?您不需要调用 .empty(),因为 (1) 在输入元素上调用它没有意义,并且 (2) .val() 无论如何都会覆盖之前的值。
  • 感谢您,.empty() 现已删除。
  • 解决了这个问题,我有一个 id="import" 的按钮,但我将它的类型设置为提交,而不是按钮(愚蠢的错误)!它正在重置我的页面,一旦我们插入它们就会从文本框中删除我的值。
  • 犯愚蠢的错误是最好的学习方式:)。

标签: php javascript jquery post


【解决方案1】:

您必须使用 json.parse() 并将其分配给变量以将其用作对象。

here下载json2.js

json.parse 有 this 文档。

JSON 的请求类型并不意味着 ajax 函数将“数据”值作为对象返回。它仍然是一个字符串,需要用

解析
var myObject = JSON.parse(data);

那么你可以像这样使用它

alert(myObject.name);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多