将数据从jQuery.post返回给PHP时未定义的参数

时间:2014-04-22 02:24:13

标签: javascript php jquery

我尝试从数据库返回数据,并在用户在第一个文本框中输入ID后填充文本字段。目前,只要用户没有在ID号中输入空格,我就可以使用该代码。现在我试图允许该用例。我的PHP代码返回一个带有三个字段的json编码数组:first_name,last_name和full_name。

当我使用console.log(数据)查看返回的数据时,我会收到以下内容:

    {"first_name":"Test","last_name":"Test","full_name":"Test Test"} 

但是在我的代码中,我尝试在.val()中编写 data.full_name ,没有填充任何内容,并且当使用console.log时,我收到错误说" undefined&# 34。

以下是整个jQuery代码:

    $("#ID").blur(function () {
        var params = {};
        params.ID = encodeURIComponent($(this).val());
        $.post("getter.php", params, function ( data ) {
          if (!data) {
             $("input[name=username]").val("User Not Found");
          } else {
             $("input[name=username]").val(data.full_name);
             $("input[name=username]").attr("readonly", true);
          }
        });
     });

非常感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:1)

强制jQuery以json:

的形式读取返回的数据
$("#ID").blur(function () {
        var params = {};
        params.ID = encodeURIComponent($(this).val());
        $.post("getter.php", params, function ( data ) {
          if (!data) {
             $("input[name=username]").val("User Not Found");
          } else {
             $("input[name=username]").val(data.full_name);
             $("input[name=username]").attr("readonly", true);
          }
        }, "json"); // <- json forced
     });

然后确保您返回的数据采用正确的json格式(例如在php中使用json_encode

答案 1 :(得分:0)

使用trim()删除空格。

然后您可以检查参数值is_numeric(),如果为false,则设置默认值。