2009-09-25 50 views
0

我有jQuery Ajax請求,它將數據發送到PHP頁面,然後將記錄插入到MySQL中。
用我目前的設置,這一切工作正常。jQuery:使用PHP/Ajax插入記錄並從PHP頁面創建JS變量

但是,作爲PHP腳本的一部分,我使用mysql_insert_id()來檢索最後一條記錄的ID。
我需要Ajax成功函數來將此ID值作爲javascript變量返回。

PHP代碼

if ($_GET['Ajax'] == 1) {      
$insert_statement = "INSERT INTO ..."; 
$insert = mysql_query(...); 

$LastID = array('LastID' => mysql_insert_id()); 
$LastID = json_encode($LastID); 
} 

$.ajax({ 
    type: "GET", 
    url: "AddFunction.php", 
    data: {"Ajax":"1", "Data":"Test"}, 
    dataType: "json", 
    success: function(data) { 
     var LastID = data; 
     alert(LastID); 
    } 
}); 

我讀過使用PHP的json_encode創建一個JSON對象,然後傳遞迴的,但我已經沒有使用Javascript運氣。
如何返回此值?

回答

4

只使用

echo $LastId; 

發送響應。

如果傳遞只有一個值,你不需要JSON:

PHP代碼

if ($_GET['Ajax'] == 1) {         
$insert_statement = "INSERT INTO ..."; 
$insert = mysql_query(...); 

$LastID = mysql_insert_id(); 
echo $LastID; 
} 

的Javascript

$.ajax({ 
    type: "GET", 
    url: "AddFunction.php", 
    data: {"Ajax":"1", "Data":"Test"}, 
    dataType: "text", 
    success: function(data) { 
     var LastID = data; 
     alert(LastID); 
    } 
}); 

使用JSON:

PHP代碼

if ($_GET['Ajax'] == 1) {         
$insert_statement = "INSERT INTO ..."; 
$insert = mysql_query(...); 

$jsonArray= array('LastID' => mysql_insert_id()); //*1 value is named LastID 
echo json_encode($jsonArray); 
} 

的Javascript

$.ajax({ 
    type: "GET", 
    url: "AddFunction.php", 
    data: {"Ajax":"1", "Data":"Test"}, 
    dataType: "json", 
    success: function(data) { 
     var LastID = data["LastID"];//use the same name as above (*1) 
     alert(LastID); 
    } 
}); 
+0

好了沒有使用JSON,只是回顯值是工作的這種方法。 但是,我可以看到在將來我將有多個值返回,我將如何正確使用JSON來做到這一點? – ticallian 2009-09-25 08:50:49

+0

k試試上面的代碼:) – jantimon 2009-09-25 08:57:11

+0

偉大的東西,工程師。謝謝 – ticallian 2009-09-25 08:57:32

0

也許是因爲你的LastID是陣列,因此產生的對象將是一個JS數組。

如果您只需要該ID,請不要使用JSON編碼,只需在Javascript中傳遞該ID即可。

所以在PHP中:

if ($_GET['Ajax'] == 1) {         
$insert_statement = "INSERT INTO ..."; 
$insert = mysql_query(...); 

$LastID = mysql_insert_id(); 
echo $LastID; 
}