我有一个有两个输入的表单。用户填写表单并单击“提交”后,将这些输入与MySQL表数据进行比较。
我想要做的是:当用户点击表单中的“提交”时,会将用户重定向到同一页,但会显示一条消息。
如果用户的输入与表中的数据匹配,则消息应为
“您的输入与数据库匹配”
如果用户的输入不匹配,则消息应相反。
到目前为止,这是我的代码。同样,我需要知道的是,在按下提交按钮后,我如何保持在同一页面。
$sql1 = " SELECT `Numero Cedula` FROM Teste WHERE `Numero Cedula`=$numero_cedula
and `Id`=$integer " ;
$objGet = mysqli_query($con, $sql1);
if( mysqli_num_rows($objGet) > 0 ) {
echo "Your input matches the database";
} else {
echo "Your input does not match the database";`
}
答案 0 :(得分:1)
或者,您可以在这种情况下设计(某种类型)闪存会话行为。提交后,在会话中设置一条消息。然后在重定向后回显它,然后只是简单地取消它。
粗略的例子:
session_start();
$current_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
if(isset($_POST['submit'])) { // upon submission
$sql1 = "SELECT `Numero Cedula` FROM Teste WHERE `Numero Cedula` = $numero_cedula and Id = $integer";
$objGet = mysqli_query($con, $sql1);
if( mysqli_num_rows($objGet) > 0 ) {
$_SESSION['msg'] = "Your input matches the database";
} else {
$_SESSION['msg'] = "Your input does not match the database";
}
header('Location: ' . $current_url);
exit;
}
if(isset($_SESSION['msg'])) {
echo '<div class="message">' . $_SESSION['msg'] . '</div>';
unset($_SESSION['msg']);
}
旁注:也使用准备好的陈述。
答案 1 :(得分:1)
不要重定向使用AJAX。下面是一个例子,您可以扩展它以包括错误的字段(不建议)或包括尝试的次数等等。无论您需要什么。
AJAX;
$.post('yourUrl', $('yourForm').serialize(), function (data) {
$result = parseJSON(data);
//append your message somewhere
$('body').append($result.message);
$('body').append('You have ' + $result.numberOfTries + ' Left');
}
PHP;
if (//your validation is good!)
{
//redirect to your stuffs
}
else
{
echo json_encode(array(
'successful'=>false,
'message'=>'Sorry, Those Details Are Incorrect',
'numberOfTries'=>$triesLeft,
)
);
};
答案 2 :(得分:0)
if( mysqli_num_rows($objGet) > 0 ) {
echo "<script>alert('Your input matches the database')</script>";
}
else {
echo "<script>alert('Your input does not match the database')</script>";`
}