您好我必须设置一个消息框,当数据库表中已有特定数据时超时,然后重定向到另一个页面。我的问题是当页面被重定向而没有显示警告框时。
控制语句php:
$count=0;
$sql="SELECT main_sec_name from main_sec_temp";
if($r=mysqli_query($con,$sql)) {
while($result= $r->fetch_row()) {
$count=$count+1;
}
}
if($count==0) {
if(mysqli_query($con,"INSERT INTO main_sec_temp(main_section_order,main_sec_name,main_number_of_ques,attempts) VALUES('','$sec_name','$no_question','$no_attempts')")) {
echo "Successfully Inserted";
header("location:index.php");
}else{
echo "Insertion Failed";
}
} else { //When Data is already exist
echo "<script>alert('already exist')</script>";
header("location:index.php");
}
答案 0 :(得分:0)
您正在尝试在示例中混合使用服务器端(PHP)和客户端(Javascript)代码。使用header('Location:...')
将由PHP执行,然后用户将有机会查看页面内容(在页面上显示任何内容之前还需要使用标题)。
另外,使用javascript alert()需要通过按OK按钮进行用户交互,因此您无法使用超时来重定向用户。
更好的方法是这样的:
/// display html message and the javascript part of your code
echo "<h3 class='error'>Already exist</h3>";
echo "<script>";
echo "setTimeout(function(){ ";
echo " document.location='index.php';";
echo "}, 3000);"; // redirect after 3 seconds
echo "</script>";