WebページからのAJAXリクエストに応じて、PHPスクリプトから必要な情報をすべて取得できません。mysqlからバックエンドに戻ってURLを使用する方法
私は、フロントエンドのフォームがあります。
<form method="post" id="register-form">
<input class="form-control" id="firstname" name="first name" placeholder="Fornavn" type="text" />
<button type="submit" class="btn btn-success" name="btn-save" id="btn-submit">
Next page <i class="fa fa-arrow-right"></i>
</button>
データをポストするためにAJAXを使用しています。
<a href="goHome.php?userID=XX" class="btn btn-buy-now" role="button">Go home</a>
<a href="goAway.php?userID=XX" class="btn btn-buy-now" role="button">Go Away</a>
:正常な応答は、2つのリンクボタンを表示して終了した後
function submitForm(){
$.ajax({
type : 'POST',
async: false, // NEW
url : 'register.php',
data : $("#register-form").serialize(),
dataType: 'json',
success : function(data){
if (data.status==='success') {
$("#btn-submit").html('<span class="fa fa-spinner fa-spin"></span> Saving ...');
$('#btn-submit').attr('disabled', 'disabled');
$(".reg-form").fadeOut(500);
$(".ChooseProductForm").fadeIn(500);
}
});
return false;
}
を
リンクhref
の値のXXは、のプレースホルダ文字ですPHPで生成された値。
私のPHPファイル:
<?php
$response = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$user_firstname = trim_inputs($_POST['firstname']);
$user_joining_date = date('Y-m-d H:i:s');
$response['status'] = 'success';
$SaveData = "INSERT INTO Users (firstname, joined)
VALUES ('".$user_firstname."', '".$user_joining_date."')";
if (mysqli_query($link, $SaveData)) {
$LastInsertedID = mysqli_insert_id($link);
} else {
$response['status'] = 'error';
//echo "Error: " . $SaveData . "<br>" . mysqli_error($link);
}
echo json_encode($response);
}
?>
すべてがちょうどそれが必要のように動作しますが、これらの二つのボタンをフロントエンドに戻す$LastInsertedID
値を取得する方法を理解することはできません。
私は$ responseの配列があることを知っていますが、値を戻す方法はあります。私は得ることができます
$response['message'] = 'Welcome user';
が、私は、そのメッセージにのhref ...タグをURLを追加したり、<場合、何も表示されないであろう: はまたのようなメッセージが表示されます。この質問を読み取るための
おかげで、うまくいけば、それは理解できると、おそらく誰かが事前に
感謝:-)助けることができます!
?あなたはこれもSQLインジェクションにオープンしています。 – chris85
あなたの応答にidを入れてください。あなたの成功コールバック(submitForm関数内)の中にレスポンスからIDを取得して、2つのオプションがあります:1.クッキーに保存して、次のページでそのクッキーを読んでください。 2。)URLにIDを入れ、次のページが読み込まれたら、そのIDをURLから取得してください – victor
**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual /en/mysqli.quickstart.prepared-statements.php)と['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'、' $ _GET'、**任意の**ユーザデータを直接クエリーに入れないでください。誰かがあなたのミスを悪用しようとすると非常に危険です。 – tadman