本帖最后由 jackbill43 于 2013-08-15 15:09:41 编辑

解决方案 »

  1.   


        if(!$class_name || !$class_number|| !$roster_status)
        {
           echo "<script>alert('表单未填完整,带星号为必填项!');history.back();</Script>";
           exit;    
        }
    这里的$roster_status是在哪里被定义和赋值的?你贴出来的代码中没有,页面上的表单中也没有相关的字段,这当然会触发这个验证了
      

  2.   

    你是怎么更改的改成前面定义过的class_status了
      

  3.   

    1.$_POST是存放从表单通过post方式提交过来的数据的变量,使用var_dump来打印出这个变量的内部结构,查看下class_status有没有被表单提交,如果有被提交,那么值是什么
    2.
                <select name="class_status">
                    <option value="0">请选择教室状态</option>
                    <option <?php if($roster_value["class_status"]==0) echo "selected"?> value="0">空闲</option>
                    <option <?php if($roster_value["classr_status"]==1) echo "selected"?>  value="1">有课</option>
                </select>
    这个地方。请选择教室状态和空闲两个option的值都是0,这是不合理的。如果你选择了这两种状态,那么表单提交的class_status就是0,!逻辑非运算符在计算0时得到结果一样是true,因此会触发错误。