我正在为一个项目开发PHP和MYSQL,我遇到了一个奇怪的问题,我点击表单上的提交按钮,它将运行这些代码。然而,奇怪的问题是页面返回空白而不是回到带有表单的页面。我已经搜索了几个小时的错误,但找不到它。
请指出我的错误。谢谢你的帮助。
<?php
include '../database.php';
if(isset($_POST['submit'])) {
if (isset($_POST['stuid_0'])){
$student = $_POST['stuid_0'];
//query moderator details
$query = mysql_query(" SELECT ModeratorID FROM Student WHERE StuID ='$student' ") or die(mysql_error());
$info = mysql_fetch_assoc ($query);
$dbmoderator = $info['ModeratorID'];
//check for changes of status in supervisor
$query2 = mysql_query(" SELECT SupervisorID FROM Student WHERE StuID ='$student' ") or die(mysql_error());
$value = mysql_fetch_assoc ($query2);
$dbsupervisor = $value['SupervisorID'];
$query3 = mysql_query(" SELECT LectStatus FROM Lecturer WHERE LectID ='$dbsupervisor' ") or die(mysql_error());
$value2 = mysql_fetch_assoc ($query3);
$dbsupervisorstatus = $value2['LectStatus'];
//if no changes in supervisor
if ($dbsupervisorstatus=='2'){
echo ("<SCRIPT LANGUAGE='JavaScript'>
window.alert('Moderator can't be promoted')
window.location.href='../committee/committee_supervisor2.php'
</SCRIPT>");
}
else{
//newly assigned a supervisor if previous supervisor status is not active
$query4 = "UPDATE Student SET SupervisorID='$dbmoderator', SupervisorStatus='1', ModeratorID=NULL WHERE StuID='$student'";
mysql_query($query4);
echo ("<SCRIPT LANGUAGE='JavaScript'>
window.alert('Successfully updated')
window.location.href='../committee/committee_supervisor2.php'
</SCRIPT>");
}
}
else
echo ("<SCRIPT LANGUAGE='JavaScript'>
window.alert('You must choose a moderator to be promoted')
window.location.href='../committee/committee_supervisor2.php'
</SCRIPT>");
}
?>
更新: 我认为系统在此时运行时会出现问题
if ($dbsupervisorstatus=='2'){
当我发出回声“测试”;在这一行之前它仍然有效。
更新2:
我发现代码可以在我放
时运行if ($dbsupervisorstatus=='2'){
echo "Moderator can't be promoted";
}
以及
if($dbsupervisorstatus == 2){
header("location:commitee_supervisor2.php");
}
但是我没有看到原始代码的原因
if ($dbsupervisorstatus=='2'){
echo ("<SCRIPT LANGUAGE='JavaScript'>
window.alert('Moderator can't be promoted')
window.location.href='../committee/committee_supervisor2.php'
</SCRIPT>");
}
不工作..一点帮助..:)
最终更新
伙计们,我知道为什么。
这是因为
window.alert('Moderator can't be promoted')
有3个撇号。
我只是删除了“不能”这个词并且它已经工作了。
谢谢你们的帮助:)
答案 0 :(得分:1)
使用JavaScript代码仍然有效,但调试的起点是在您回显JavaScript的所有地方回显普通文本。这将帮助您了解您的代码在什么时候开始失败。实施例
//if no changes in supervisor
if ($dbsupervisorstatus=='2'){
echo ("<SCRIPT LANGUAGE='JavaScript'>
window.alert('Moderator can't be promoted')
window.location.href='../committee/committee_supervisor2.php'
</SCRIPT>");
}
替换为
//if no changes in supervisor
if ($dbsupervisorstatus=='2'){
echo "Moderator can't be promoted";
}
在所有回音点上执行此操作,然后再次使用JavaScript代码逐个替换,然后您将发现代码失败的位置。
答案 1 :(得分:0)
不要通过javascript进行,而是尝试在纯PHP中使用更好的方法。类似的东西:
if($dbsupervisorstatus == 2){
header("location:commitee_supervisor2.php");
}
如果你必须使用JS,然后发出一个AJAX请求,那么无论如何你都可以通过JS操纵行为。
答案 2 :(得分:0)
您在哪里放置HTML表单?它在同一页面还是不同页面?从您的代码看,似乎没有做任何事情,所以我建议您检查您的提交按钮名称是否正确(提交)。 HTML应该是这样的:
<form name="your_form">
<!-- Your form here -->
<input type="submit" name="submit" value="Submit"/>
</form>