我是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
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.");
}
由于所有字段都是必填字段,如果不是所有字段都填写(或点击),我都需要一个错误报告。现在,当错误发生时,它被带到一个新页面,因此我输入的所有内容都将丢失,我必须再次键入它们。 因此,不是转到下一页,是否可以显示一个错误的弹出窗口,以便我可以纠正错误并从我停止的地方继续? 任何帮助都非常感谢。提前谢谢。
答案 0 :(得分:1)
如果您允许用户通过单击“提交”按钮来发布表单,则页面将重定向到表单标记的操作参数。然后,您将丢失表单上输入的所有数据。使用这种方法可以解决这个问题,但它有点古怪。
但是,不是使用标准的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 handler
<?php
if(empty($_POST["someText"])){
echo "someText field cannot be left blank";
}else{
echo "OK";
}
?>
现在,如果您想要花哨,而不是提醒错误消息,请将所有错误消息以漂亮的html格式放入表单中,如果一切正常,请将其清除。
答案 1 :(得分:0)
使用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;
}
答案 2 :(得分:0)
您可以使用java脚本验证。因此,如果某人尝试在不填写必填字段的情况下提交表单,则可以弹出警报消息。 jQuery验证库完美地处理了这个问题。