PHP-使用放大弹出菜单显示表单提交后的消息
PHP - Showing message after form submission using Magnific Popup
我有一个放大弹出窗口中的窗体。我想要这样一种方式:
1.)用户提交表单后,将打开一个新的放大镜弹出窗口,并显示已提交的消息。
2.)例如,如果用户已经提交了表单,则放大弹出窗口将显示消息而不是表单,以防止提交多个报告。
到目前为止,我有下面的代码,但它没有显示消息。
PHP
if(isset($_POST["btnSubmit"]))
{
$issue = $_POST['issue'];
$sql = "SELECT id, FROM report WHERE id='$id'";
$result = mysqli_query($db, $sql);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
if(mysqli_num_rows($result) >= 1)
{
//Show message here
}
else
{
$sql = mysqli_query($db, "INSERT INTO report (id, issue) VALUES ('$id', '$issue')");
}
}
Javascript/Jquery
<script>
function cancel(){
$.magnificPopup.close();
}
$(document).ready(function(){
$('.report').magnificPopup({
type: 'inline',
fixedContentPos: true,
fixedBgPos: true,
overflowY: 'auto',
closeBtnInside: false,
preloader: false,
midClick: true,
mainClass: 'my-mfp-zoom-in',
});
$('#reportSubmittedContainer').magnificPopup({
type: 'inline',
fixedContentPos: true,
fixedBgPos: true,
overflowY: 'auto',
closeBtnInside: false,
preloader: false,
midClick: true,
mainClass: 'my-mfp-zoom-in',
});
});
</script>
HTML
<a href="#reportContainer" class="btnReport report" role="button">
<i class="fa fa-exclamation-triangle"></i> Report
</a>
<div id="reportContainer" class="mfp-hide">
<form class="form-horizontal submitReportForm" role="form" method="POST">
<div class="form-group">
<label class="control-label col-sm-2">Issue:</label>
<div class="col-sm-9">
<textarea id="issue" name="issue" type="text" class="form-control" rows="5"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" name="btnSubmit" value="Submit" onclick="return validate();" class="btn btn-default" />
<input type="button" name="btnCancel" value="Cancel" onclick="return cancel();"class="btn btn-default" />
</div>
</div>
</form>
</div>
<div id="reportSubmittedContainer" class="mfp-hide">
We have received your report.
</div>
以下是我的评论:
1.)用户提交表单后,将打开一个新的放大镜弹出窗口,并显示已提交的消息。
Http是您当前使用的协议。Http过程是无状态的,这意味着每个请求都是唯一的。因此,当您提交表单时,DOM(文档对象结构)将在服务器中重新构建。为了实现这种限制,AJAX被发明了。我没有在你的代码中看到validate方法。这可能使用AJAX,但它不是你应该改变的。
2.)例如,如果用户已经提交了表单,则放大弹出窗口将显示消息而不是表单,以防止提交多个报告。
这也是HTTP协议的限制。由于其无状态性质,您必须使用Cookie向客户端发送一些信息,表明用户以前已经提交过表单。javascript和PHP都可以发送cookie。
相关文章:
- 表单提交没有'如果为空,则不会显示错误消息
- 显示带有表单提交的单击事件的 toastR
- 在表单提交后显示模态,直到加载下一页为止..不适用于狩猎
- 在表单提交后显示消息的方法
- 元素未显示在iOS表单提交中
- 在表单提交之前,save()内部的方法调用显示模板的返回
- 在用户提交表单后显示数据(从API调用检索),而不刷新页面
- 当我以带有编辑和删除按钮的表单提交时,显示所有值
- 如果出现错误,请在表单提交中显示图像
- 在表单提交时显示错误
- 在提交表单和显示消息之前,如何检查表单输入是否全是数字
- 防止在 Jquery 表单提交时加载页面,但“无”显示按钮
- 使用jQuery切换根据选中的复选框隐藏/显示表单提交按钮 - 如何设置默认关闭的提交按钮
- 表单提交未显示 JavaScript 输出
- 值通过表单提交,然后即使在提交并显示值之后,也会以表单显示已提交的值
- 如何防止页面在表单提交时重新加载,并显示一个小文本说“已成功注册”
- 将HTML文件中的表单提交到PHP文件,并以相同的HTML显示结果
- 在基于 Ajax 的表单提交中显示不同的消息
- 文件上传器表单提交事件调用面板以显示包含文件更新程序我想删除代码重写在 jquery 中使用循环重写所有文件类型
- 2表单提交显示相同的AJAX结果