如何在弹出窗口中显示错误消息,而不是移动到新页面
How to display error message inside a pop up window instead of moving to a new page?
我是 php 的新手,我是新来的,我不知道我问这么长的问题是否正确。如果这里不是这样,我很抱歉。
- 我有以下代码用于输入问题,它是四个选择。
- 在文本框中输入 4 个选项,每个选项都有一个单选按钮。
- 从这 4 个按钮中单击的按钮将是 $correct 的值
- $difflevel、$agegroup 和 $catId 再次是一组单选按钮的值。
以下是我的代码
if(isset($_POST['submit']))
{
extract($_POST);
$question=mysqli_real_escape_string($con,$question);
$option[0]=mysqli_real_escape_string($con,$option[0]);
$option[1]=mysqli_real_escape_string($con,$option[1]);
$option[2]=mysqli_real_escape_string($con,$option[2]);
$option[3]=mysqli_real_escape_string($con,$option[3]);
mysqli_query($con,"insert into questions(question, op1,op2,op3,op4,correct,difflevel,ageGroup,catId) values
('$question','$option[0]','$option[1]','$option[2]','$option[3]',$correct,$difflevel,$ageGroup,$catId)") or die("Some error");
$questionId = mysqli_insert_id($con);
if($_POST['catId']=="")//QUESTIONS MUST CONTAIN AT LEAST ONE CATEGORY
die("Please select category of the question entered.");
if($_POST['difflevel']=="")//DIFFICULTY LEVEL SHOULD BE SET
die("Please select difficulty of the question entered.");
if($_POST['ageGroup']=="")//AGEGROUP SHOULD BE SET
die("Please select age group of the question entered.");
if($_POST['correct']=="")//CORRECT ANSWER SHOULD BE SET
die("Please select correct answer for the question entered.");
}
由于所有字段都是必填字段,因此如果没有填写(或单击)所有字段,我需要错误报告。现在,当错误发生时,它会被带到一个新页面,因此我键入的所有内容都会丢失,我必须再次键入它们。因此,是否可以显示一个带有错误的弹出窗口,以便我可以纠正错误并从停止的地方继续,而不是转到下一页?非常感谢任何帮助。提前谢谢。
如果您允许用户通过单击提交按钮发布表单,页面将重定向到表单标签的操作参数。然后,您将丢失表单上输入的所有数据。有一些解决方法可以使用此方法解决此问题,但它有点古怪。
但是,不是使用标准 html 表单元素发布表单,而是使用 AJAX 发布表单,则页面将不会重定向/刷新,并且将保留所有以前输入的表单数据。然后解析响应文本并相应地放置相应的错误消息。
下面是一个示例:
<form>
<input type="text" id="someText" value="" /><br />
<button id="submit_button">Submit</button>
</form>
<script type="text/javascript">
$(function(){
$("#submit_button").click(function(){
var someText = $("#someText").val();
$.post("/handle_ajax.php",{someText:someText},function(resp){
if(resp !== "OK"){
alert("ERROR OCCURED "+resp)
}
});
});
});
</script>
这是非常简单的PHP Ajax处理程序
<?php
if(empty($_POST["someText"])){
echo "someText field cannot be left blank";
}else{
echo "OK";
}
?>
现在,如果您想花哨,而不是提醒错误消息,请将所有错误消息以漂亮的 html 表单放入表单中,如果一切正常,则清除它们。
利用 JavaScript alert
<?php
if(isset($_POST['submit']))
{
extract($_POST);
$question=mysqli_real_escape_string($con,$question);
$option[0]=mysqli_real_escape_string($con,$option[0]);
$option[1]=mysqli_real_escape_string($con,$option[1]);
$option[2]=mysqli_real_escape_string($con,$option[2]);
$option[3]=mysqli_real_escape_string($con,$option[3]);
mysqli_query($con,"insert into questions(question, op1,op2,op3,op4,correct,difflevel,ageGroup,catId) values
('$question','$option[0]','$option[1]','$option[2]','$option[3]',$correct,$difflevel,$ageGroup,$catId)") or die("Some error");
$questionId = mysqli_insert_id($con);
if($_POST['catId']=="")//QUESTIONS MUST CONTAIN AT LEAST ONE CATEGORY
echo "<script>alert('Please select category of the question entered.')</script>";
exit;
//die("Please select category of the question entered.");
if($_POST['difflevel']=="")//DIFFICULTY LEVEL SHOULD BE SET
echo "<script>alert('Please select difficulty of the question entered')</script>";
exit;
if($_POST['ageGroup']=="")//AGEGROUP SHOULD BE SET
echo "<script>alert('Please select age group of the question entered.')</script>";
exit;
if($_POST['correct']=="")//CORRECT ANSWER SHOULD BE SET
echo "<script>alert('Please select correct answer for the question entered.')</script>";
exit;
}
您可以使用 java 脚本验证。因此,如果有人尝试在不填写必填字段的情况下提交表单,您可以弹出警报消息。jQuery验证库完美地处理了这一点。
相关文章:
- 在检查单选按钮的值是否正确后,如何将其带到新页面
- 在Phonegap中重定向到新页面后,AdMob未定义
- ASP.NET MVC 3-在ajax调用后,重定向到新页面或生成页面刷新
- javascript:发送带有音频文件的POST,然后重定向到新页面
- 在onclick上动态创建新页面
- 如何将缩略图链接到新页面上的视频
- 将焦点移动到页面元素
- Javascript:在新页面中打开链接并运行脚本
- 视频暂停超过1分钟后重定向到新页面
- 在非移动友好页面上创建移动友好小部件
- 使用弹出模式中断k-pager-nav以确认/拒绝移动到新页面
- 在包含输入的输入文本框中输入字符后,移动到新页面
- 如何在弹出窗口中显示错误消息,而不是移动到新页面
- 将 Jquery 移动重定向到新页面,并触发此页面中的函数
- 我的网站移动版应该使用什么?jquery mobile/CS3页面媒体/通过jscript检测浏览器大小或重定向到新页面
- location.replace(),并在返回数据时移动到新页面
- 点击离子导航条上的按钮移动到新页面的所有3种方式都不起作用
- jQuery移动.导航更改url,不加载新页面
- Jquery移动滚动到底部的新页面
- 移动新html页面的渲染元素