2016-11-25 49 views
1

我想提交一個表格,將數據插入到一個mysql數據庫工作正常。然後我想返回新插入的行的id(在mysql表中id自動增量),因爲我想在表單提交後打開一個模式,所以我可以提供一個鏈接,其中包含id作爲url中的參數。發送阿賈克斯發佈請求,並檢索插入的ID

要發送的數據的形式,我用下面的代碼:

$(document).ready(function(){ 
$("#submitForm").click(function(){ 

var string = $('#commentForm').serialize(); 

// AJAX Code To Submit Form. 
    $.ajax({ 
     type: "POST", 
     url: "SubmitData.php", 
     data: string, 
     cache: false, 
     success: function(result){ 
     //alert(result); 
     } 
    }); 
}); 
}); 

的SubmitData.php文件,然後將表單數據插入到數據庫中。

在SubmitData.php我可以創建一個變量拿起新插入的行的ID喜歡
$last_id = mysqli_insert_id($conn);

有沒有一種方法,我可以從SubmitData.php文件中返回$ last_id相同的功能?在PHP文件

echo $last_id; 

+2

是的,你把這個id添加到來自PHP的響應中,並且它在成功回調'result'參數中 –

+0

只需在頁面上回顯該id,你就會得到這個結果**成功**功能 – Dherya

+1

在你的php中,只需調用'echo $ last_id;退出;'然後在你的ajax中,'result'將會是這個id :) – DelightedD0D

回答

3

是從SubmitData.php回報使用下面的回聲ID:

echo json_encode(['id'=>$last_id]); 

js:

$(document).ready(function(){ 
$("#submitForm").click(function(){ 

var string = $('#commentForm').serialize(); 

// AJAX Code To Submit Form. 
    $.ajax({ 
     type: "POST", 
     url: "SubmitData.php", 
     data: string, 
     cache: false, 
     success: function(result){ 
      alert(result.id);//this will alert you the last_id 

     } 
    }); 

}); 

}); 
+0

這也適用,如果有很多數據返回,但會很好,但因爲它只有1個ID,那麼是否真的需要返回爲json? – Amar

+0

它不是必需的,但會給你的代碼一點結構,你應該首先返回一個狀態碼,如果查詢沒有找到結果,你需要告訴用戶查詢沒有返回結果會發生什麼 – madalinivascu

1

打印最後一個ID獲得在阿賈克斯成功函數

success: function(result){ 
     alert(result); 

}