2012-04-15 93 views
-1

post.js檢索POST數據備份AJAX/jQuery的

$.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後,我無法檢索或發送數據...

我在做什麼錯?

+0

data.testId&data.testAge不從update.php回到那裏各自的值 – 2012-04-15 13:54:11

回答

0

如果您訪問的是data.testId,那意味着您正在訪問從update.php收到的響應(存儲在您的示例中稱爲data的變量中),作爲jQuery post調用的結果。通過提及數據類型爲jSon,您確定服務器的響應將被轉換爲jSon格式。

如果您update.php頁面返回一個JSON這樣

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

然後你就可以訪問諸如data.iddata.age的indidual值。

,如果你有一個有效的JSON從服務器返回頁面像上面

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

我覺得$就功能會更適合您的需求在下面的代碼應該工作:

$.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所說,請提供有關錯誤的更多信息。

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 
     } 
    } 
});