Php 如何仅在提交查询时显示成功消息?
这是一个简单的代码,但我不明白我的错误在哪里。当我单击提交时,我想在表单下显示成功消息,但消息始终保留在那里。当我进入表单所在的页面时,消息位于表单下方。如何仅在查询成功时将其取出Php 如何仅在提交查询时显示成功消息?,php,mysql,submit,Php,Mysql,Submit,这是一个简单的代码,但我不明白我的错误在哪里。当我单击提交时,我想在表单下显示成功消息,但消息始终保留在那里。当我进入表单所在的页面时,消息位于表单下方。如何仅在查询成功时将其取出 <?php $posted = false; if(isset($_POST['add'])) { $posted = true; $email = $_POST['email']; $name = $_POST['name']; $rate = $_POST['rat
<?php
$posted = false;
if(isset($_POST['add']))
{
$posted = true;
$email = $_POST['email'];
$name = $_POST['name'];
$rate = $_POST['rate'];
$comment = $_POST['comment'];
$dth = date("Y-m-d H:i:s");
$q = "INSERT INTO reviews(email, name, rate, comment, date_created) VALUES ('$email', '$name', '$rate', '$comment', '$dth')";
$k = mysqli_query($con,$q);
}
?>
<body>
<h1>Leave a review</h1>
<div class="error-conteiner">
</div>
<div class="clear"></div>
<form action="" method="post" class="form-content">
<div class="left">
<div class="field">
<label>E-mail <span class="required">*</span></label>
<input type="text" value="" name="email" class="required-field" data-validate="email"/>
</div>
<div class="clear"></div>
<div class="field">
<label>Name</label>
<input type="text" value="" name="name"/>
</div>
<div class="clear"></div>
<div class="field">
<label>Rate</label>
<select name="rate">
<option value=''>Choose rate</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select>
</div>
</div>
<div class="left">
<label>Comment <span class="required">*</span></label>
<textarea name="comment" class="comment required-field"></textarea>
</div>
<input type="submit" value="Send" class="btn" name="add" />
</form>
<?php
if($posted){
if($k)
echo "Thank you for your comment!";
else
die(mysqli_error());
}
?>
</body>
</html>
也许这不是一个专业和好的解决方案,但如果你在文章结束后用$email和$name或其他参数进行查询,效果会很好。如果结果不是空的,那么您可以将结果或只是一条简单的消息也输入到输出中 更换
<?php
if($posted){
if($k)
echo "Thank you for your comment!";
else
die(mysqli_error());
}
?>
与
也许你必须把{}放在你的第一个if后面,直接放在下面:
$k = mysqli_query($con,$q);
加:
如果由于任何原因没有执行查询,则显示错误并停止。
您可能会考虑添加开发模式变量或常量,因为MyQuiLyError消息只对开发人员有价值,而且内容不适合用户的眼睛。无论如何:
替换:
<?php
if($posted){
if($k)
echo "Thank you for your comment!";
else
die(mysqli_error());
}
?>
mysql错误在发生的地方被处理。
仅当成功发送时,才会显示成功消息
也可以在成功时进行头重定向。但这取决于你喜欢什么
if($posted === true) {
header('Location: success-message-page.php');
exit;
}
你知道这里没有连接语句,对吗?。。。您通常会提交一个由表单创建的日期。这通常是数据库中自动设置的值。除此之外,忽略缺少准备好的语句,这段代码也很好
<?php
if($posted){
if($k)
echo "Thank you for your comment!";
else
die(mysqli_error());
}
?>
if($posted === true) {
echo 'Thank you for your comment!';
}
if($posted === true) {
header('Location: success-message-page.php');
exit;
}