[英]How to check successful data Submit using MySQL in a PHP file
我正在使用PHP文件中的MySQL命令提交表單。 我可以毫無問題地插入數據。
但是,我同時也想在同一頁面上向用戶顯示“謝謝消息”,以便他/她知道數據已成功注冊。 另一方面,如果出現任何錯誤,我也可以顯示一條抱歉的消息。
這就是我的問題。 我已經用Javascript編寫了幾行以在同一頁面中顯示消息。 但是,我堅持應該檢查哪些(以及如何)成功和失敗。
我在下面附上我的代碼。
您能否通過您的想法幫助我?
謝謝AB
HTML表單標簽 :
<form id="info-form" method="POST" action="form-submit.php">
form-submit.php :
<?php
require("database-connect.php");
$name = $_POST['name'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
$sql = "INSERT INTO tbl_details ".
"(name,email_id,mobile_number) ".
"VALUES ".
"('$name','$email','$mobile')";
mysql_select_db('db_info');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not enter data: ' . mysql_error());
return false;
}
echo "Entered data successfully\n";
mysql_close($conn);
?>
Submit-logic.js :
$(function ()
{
$('form').submit(function (e)
{
e.preventDefault();
if(e.target === document.getElementById("info-form"))
{
$.ajax(
{
type:this.method,
url:this.action,
data: $('#info-form').serialize(),
dataType: 'json',
success: function(response)
{
console.log(response);
if(response.result == 'true')
{
document.getElementById("thankyou_info").style.display = "inline";
$('#please_wait_info').hide();
document.getElementById("info-form").reset();
}
else
{
document.getElementById("thankyou_info").style.display = "none";
document.getElementById("sorry_info").style.display = "inline";
$('#please_wait_info').hide();
}
}
}
)};
});
}
每個文檔: http : //api.jquery.com/jquery.ajax/
dataType (default: Intelligent Guess (xml, json, script, or html))
Type: String
The type of data that you're expecting back from the server.
您將其顯式設置為json
,然后返回一個字符串。 您應該像告訴ajax腳本一樣返回json
。
<?php
require("database-connect.php");
$name = mysql_real_escape_string($_POST['name']);
$email = mysql_real_escape_string($_POST['email']);
$mobile = mysql_real_escape_string($_POST['mobile']);
$sql = "INSERT INTO tbl_details ".
"(name,email_id,mobile_number) ".
"VALUES ".
"('$name','$email','$mobile')";
mysql_select_db('db_info');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die(json_encode(array('result' => false, 'message' => 'Could not enter data: ' . mysql_error()));
}
echo json_encode(array('result' => true, 'message' => 'Entered data successfully'));
mysql_close($conn);
?>
我還添加了代碼以清理您的字符串,盡管不建議使用mysql_*
,最好升級到mysqli
或PDO
。 無需清理,用戶就可以入侵您的數據庫。
不過,正確返回json
將確保您的response
success: function(response)
是一個對象,並且response.result
將按預期返回,並且您可以使用response.message
在所需的位置顯示消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.