这是一个简单的代码,但我无法理解我的错误在哪里。我想在单击提交时在表单下显示成功的消息,但消息始终保持在那里。当我在表单中输入表单的消息时。如何在查询成功时将其取出?
<?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>
答案 0 :(得分:0)
也许这不是专业而且很好的解决方案,但如果您在帖子之后使用ex进行查询,则效果很好。 $ email和$ name或其他参数。如果结果不为空,那么您可以将结果或简单消息也放入输出中。
答案 1 :(得分:0)
替换
<?php
if($posted){
if($k)
echo "Thank you for your comment!";
else
die(mysqli_error());
}
?>
与
<?php
if($posted===true){
if($k) echo "Thank you for your comment!";
else die(mysqli_error());
}
?>
答案 2 :(得分:0)
也许你必须在第一次之后放置{}
答案 3 :(得分:0)
直接在下面:
$k = mysqli_query($con,$q);
添加:
if(!$k) {
die(mysqli_error());
}
如果查询未执行,无论出于何种原因,请显示错误并停止。 您可以考虑添加开发模式变量或常量,因为mysqli_error()消息仅对开发人员有价值,而内容不适合您的用户。无论如何:
替换:
<?php
if($posted){
if($k)
echo "Thank you for your comment!";
else
die(mysqli_error());
}
?>
使用:
if($posted === true) {
echo 'Thank you for your comment!';
}
处理mysql错误,发生错误。 成功发送后,仅显示成功消息。
也可以在成功时进行标题重定向。但这取决于你喜欢什么。
if($posted === true) {
header('Location: success-message-page.php');
exit;
}