-1

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 后,我无法检索或发送数据...

我究竟做错了什么?

4

3 回答 3

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 脚本将保持不变。我提供代码是因为您几乎没有提供有关您收到的错误的信息。正如加缪已经说过的,请提供更多关于错误是什么的信息。

于 2012-04-15T13:58:39.707 回答
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
        }
    }
});
于 2012-04-15T14:34:45.123 回答
0

如果您正在访问data.testId,这意味着您正在访问您从 update.php 收到的响应(存储在您的示例中称为 data 的变量中),作为您的 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);
});
于 2012-04-15T13:57:47.257 回答