Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法将教师和科学家的值发布到数据库_Javascript_Php - Fatal编程技术网

Javascript 无法将教师和科学家的值发布到数据库

Javascript 无法将教师和科学家的值发布到数据库,javascript,php,Javascript,Php,这些是“选择”框中的选项。选择其中一个选项后,将显示一个文本框 <select name="category" required id="category" style="width:75%;" onchange = "ShowHideDiv();"> <option value="" disabled selected hidden>Category</option> <option value="Student">Student&l

这些是“选择”框中的选项。选择其中一个选项后,将显示一个文本框

<select name="category" required id="category" style="width:75%;" onchange = "ShowHideDiv();">
   <option value="" disabled selected hidden>Category</option>
   <option value="Student">Student</option>
   <option value="Teacher">Teacher</option>
   <option value="Scientist">Scientist</option>
   <option value="Lab Manager">Lab Manager</option>
</select>

类别
学生
老师
科学家
实验室经理
以下是根据选择框的选择而显示的文本框:

<div id="roll" style="display: none">
    <input name="roll" type="text" id="roll"/>
    <span class="highlight"></span>
    <span class="bar"></span>
    <label>Roll No</label>
</div>
<div id="teacher" style="display: none">
    <input name="des" type="text" id="teacher"/>
    <span class="highlight"></span>
    <span class="bar"></span>
    <label>Teacher's Designation</label>
</div>
<div id="scientist" style="display: none">
    <input name="des" type="text" id="scientist"/>
    <span class="highlight"></span>
    <span class="bar"></span>
    <label>Scientist's Designation</label>
</div>
<div id="manager" style="display: none">
    <input name="des" type="text" id="manager"/>
    <span class="highlight"></span>
    <span class="bar"></span>
    <label>Lab Manager's Designation</label>
</div>

卷号
教师指定
科学家的任命
实验室经理的任命
这是用于在选择框中选择选项时显示文本框的脚本:

<script type="text/javascript">
function ShowHideDiv()
{
    var category = document.getElementById("category");
    var roll = document.getElementById("roll");
    var teacher = document.getElementById("teacher");
    var scientist = document.getElementById("scientist");
    var manager = document.getElementById("manager");
    roll.style.display = category.value == "Student" ? "block" : "none";
    teacher.style.display = category.value == "Teacher"? "block" : "none";
    scientist.style.display = category.value == "Scientist" ? "block" : "none";
    manager.style.display = category.value == "Lab Manager"? "block" : "none";
}

函数ShowHideDiv()
{
var category=document.getElementById(“category”);
var roll=document.getElementById(“roll”);
var teacher=document.getElementById(“教师”);
var-scientist=document.getElementById(“科学家”);
var manager=document.getElementById(“manager”);
roll.style.display=category.value==“学生”?“块”:“无”;
teacher.style.display=category.value==“teacher”?“block”:“无”;
科学家.style.display=category.value==“科学家”?“块”:“无”;
manager.style.display=category.value==“实验室管理器”?“块”:“无”;
}
下面是在dabase中保存数据的代码:

<?php
include "connect.php";
if(isset($_POST["submit"]))
{
    $name=$_POST["name"];
    $gender=$_POST["gender"];
    $category=$_POST["category"];
    $roll=$_POST["roll"];
    $desig=$_POST["des"];
    $college=$_POST["college"];
    $department=$_POST["department"];
    $email=$_POST["email"];
    $phno=$_POST["phno"];
    $dob=$_POST["dob"];
    $lab=$_POST["lab"];

    $sql="insert into usercreation values('$name','$gender','$category','$roll','$desig','$college','$department','$email','$phno','$dob','$lab')";
    if(mysql_query($sql,$link))
    {
        header("location:usercreation.php?ok=1");

    }
    else
    {
        echo mysql_error(); 
    }
}
?>

问题已经解决了。感谢@Pablo Barria Urenda和@CaitLAN Jenner

<div id="roll" style="display: none">
<input name="roll" type="text" id="roll"/>
<span class="highlight"></span>
<span class="bar"></span>
<label>Roll No</label>
</div>
<div id="teacher" style="display: none">
<input name="des1" type="text" id="teacher"/>
<span class="highlight"></span>
<span class="bar"></span>
<label>Teacher's Designation</label>
</div>
<div id="scientist" style="display: none">
<input name="des2" type="text" id="scientist"/>
<span class="highlight"></span>
<span class="bar"></span>
<label>Scientist's Designation</label>
</div>
<div id="manager" style="display: none">
<input name="des3" type="text" id="manager"/>
<span class="highlight"></span>
<span class="bar"></span>
<label>Lab Manager's Designation</label>
</div>

卷号
教师指定
科学家的任命
实验室经理的任命
他提出的解决方案是更改文本框的名称

下面是保存代码(已更改)


请参阅。本质上,大多数浏览器在对象上设置display:none属性时不会向服务器发送数据。另外,要注意内联SQL,就像您正在使用的一样,它很容易受到SQL注入攻击。这是一个理论,但由于Manager是最后一个输入框,您只是在隐藏它,它的空白值是否可能会覆盖其他两个输入框的值?(因为它们都有相同的“des”名称)@PabloBarríaUrenda实际上也是正确的。前两条注释是代码的主要问题。即使如此,display:none属性也不会被大多数浏览器从post数据中排除。“des”这个名字似乎是个问题。我试着编辑它,结果成功了。谢谢你,伙计。谢谢你的帮助。我很高兴你的问题得到了解决。但是,您仍然应该考虑SQL注入的对策。在解释SQL语句之前,特制的负载可能会改变SQL语句。我将在后面的阶段添加它们。谢谢CaitLANJenner的提醒。
<?php
include "connect.php";
if(isset($_POST["submit"]))
{
    $name=$_POST["name"];
    $gender=$_POST["gender"];
    $category=$_POST["category"];
    $roll=$_POST["roll"];
    $des1=$_POST["des1"];
    $des2=$_POST["des2"];
    $des3=$_POST["des3"];
    $college=$_POST["college"];
    $department=$_POST["department"];
    $email=$_POST["email"];
    $phno=$_POST["phno"];
    $dob=$_POST["dob"];
    $lab=$_POST["lab"];

    $sql="insert into usercreation values('$name','$gender','$category','$roll','$des1','$des2','$des3','$college','$department','$email','$phno','$dob','$lab')";
    if(mysql_query($sql,$link))
    {
        header("location:usercreation.php?ok=1");

    }
    else
    {
        echo mysql_error(); 
    }
}
?>