检索POST数据回AJAX / jQuery

时间:2012-04-15 13:41:11

标签: php jquery ajax json

post.js

$.post(
  "/scripts/update.php",
  {id: testId, age: testAge},
  function(data) {
    $(".testDiv").html(data.testId);
    $(".testDiv2").html(data.testAge);
  },
  "json"
);

update.php

$userId = $_POST["id"];
$userAge = $_POST["age"];

// contact database and retrieve user Id and user name...

echo json_encode(array("testId"=>$userId, "testAge"=>$userAge));

如果我要取出, "json");代码,我可以将信息传递给update.php就好了,但无法检索任何数据。添加json后,我无法检索或发送数据......

我做错了什么?

3 个答案:

答案 0 :(得分:3)

我认为$ .ajax功能更适合您的需求:

$.ajax({
    type: "POST",
    url: "/scripts/update.php",
    data: {id: testId, age: testAge},
    dataType: "json",
    success: function(data) {
        $(".testDiv").html(data['testId']);
        $(".testDiv2").html(data['testAge']);
    }
});

您的PHP脚本将保持不变。由于这个事实,我提供的代码 你提供的信息很少,说明你收到的错误。正如camus所说,请提供有关错误的更多信息。

答案 1 :(得分:0)

如果您正在访问data.testId,那意味着您正在访问您从update.php收到的响应(存储在您的示例中称为数据的变量中)作为jQuery post调用的结果。通过提及数据类型为jSon,您确保将来自服务器的响应转换为jSon格式。

如果你的update.php页面正在返回像这样的jSon

{ "id": "3","age":"53"}

然后,您可以访问data.iddata.age

}等不定值

如果您从上面的服务器页面返回有效的json

,则以下代码应该有效
$.post("/scripts/update.php", {  id: testId, age: testAge}, dataType:"json",function(data) {
   $(.testDiv).html(data.id);
});

答案 2 :(得分:0)

我会做@ gimg1所说的,但是像这样:

var form_data = {
            testId: $("#testIdForm").val(),
            testAge: $("#testAgeForm").val()
        };
$.ajax({
    type: "POST",
    url: "/scripts/update.php",
    data: {id: testId, age: testAge},
    dataType: form_data,
    success: function(response) {
        if(response == 'success'){
            //do success function here
        }
    }
});