2016-11-25 5 views
1

私は正常に動作しているmysqlデータベースにデータを挿入するフォームを送信しようとしています。私は新しい挿入された行のIDを返したいと思っています(私はidをmysqlテーブルに自動インクリメントします)。フォームが提出されたらモーダルを開きたいので、urlのパラメータとしてIDを含むリンクを提供できます。Ajaxのポストリクエストを送信し、挿入された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ファイルは、データベースにフォームデータを挿入します。私は、次のコードを使用していますフォームのデータを送信するために

。私は
$last_id = mysqli_insert_id($conn);

のように新たに挿入された行のIDをピックアップする変数を作成することができますSubmitData.phpで

は、私は内SubmitData.phpファイルからの$ last_idを返すことができる方法はあります同じ機能ですか?そのPHPファイル

echo $last_id; 

+2

はい、あなたはPHPからの応答にidを追加します。成功したコールバックの 'result'引数には –

+0

があります。そのIDをページにエコーして、その結果を** success ** functionあなたのPHPで – Dherya

+1

を呼び出すだけで 'echo $ last_id; exit; 'あなたの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は、Ajaxの成功の機能でこれを取得

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

} 
関連する問題