使用下拉列表从表单中将值插入数据库

时间:2018-04-04 21:38:43

标签: php drop-down-menu

我正在尝试将表单中用户输入的值插入到我的数据库中。

我正在尝试创建2个下拉列表,第一个派生第二个选项。例如,Faculty的第一个下拉列表,第二个下拉列表包含所选教师中的学校。

我当时也希望将收集的信息插入到我的数据库中,但是我可以在首先获得正确的下拉菜单之后关注它。

我的注册页面位于一页,其中getSchool.php位于不同的文件中,我感觉两者之间的联系可能是我的问题。

register.php如下。这是表格所在的页面

 <?php
 session_start();

 include('dbConnect.php');

 $queryStr=("SELECT * FROM faculty");
  $dbParams=array();
   // now send the query
  $results  = $db->prepare($queryStr);
  $results->execute($dbParams);

 ?>
 <html>
 <head>
 <TITLE>Faculty & School</TITLE>
 <head>
 <!-- Help for code to create dynamic drop downs -->
 <script src="https://code.jquery.com/jquery-2.1.1.min.js" 
 type="text/javascript"></script>
 <script>
 function getFaculty(val) {
  $.ajax({
  type: "POST",
  url: "getFaculty.php",
  data:'facultyID='+val,
  success: function(data){
    $("#schoolList").html(data);
 }
  });
  }

  function selectFaculty(val) {
  $("#search-box").val(val);
  $("#suggesstion-box").hide();
 }
  </script>
  </head>
  <body>
  <div class="frmDronpDown">
  <div class="row">
  <label>Faculty:</label><br/>
  <select name="faculty" id="facultyList" class="demoInputBox" 
  onChange="getFaculty(this.value);">
  <option value="">Select Faculty</option>
  <?php
  foreach($results as $faculty) {
  ?>
  <option value="<?php echo $faculty["facultyID"]; ?>"><?php echo 
  $faculty["facultyName"]; ?></option>
  <?php
  }
  ?>
  </select>
  </div>
  <div class="row">
  <form action="addBlood.php" method="post">
  <label>Test:</label><br/>
  <select name="test" id="test-list" class="demoInputBox">
  <option value="">Select Test</option>
  </select>
  </div>
  </div>

  <label>Result:</label><input class="input" name="result" type="text"><br>
  <label>Date:</label><input class="input" name="date" type="date"><br>
  <input class="submit" name="submit" type="submit" value="Submit">
  </form>

以下是获得所有学校的getSchool.php

 <?php
 include('dbConnect.php');


 if(!empty($_POST["facultyID"])) {
 $queryStr=("SELECT * FROM school WHERE facultyID = '" . $_POST["facultyID"] 
 . "'");
 $dbParams=array();
 // now send the query
 $results  = $db->prepare($queryStr);
 $results->execute($dbParams);

 ?>
 <option value="">Select School</option>
 <?php
foreach($results as $school) {
?>
<option value="<?php echo $school["schoolID"]; ?>"><?php echo 
$school["schoolName"]; ?></option>
<?php
}
}
?>

提前感谢您的任何反馈和帮助。

西蒙

2 个答案:

答案 0 :(得分:0)

   url: "getFaculty.php",
   data:'facultyID='+val,
    success: function(data){
     $("#schoolList").html(data);

#schoolList元素在哪里?为什么getFaculty.php?它不应该是getSchool.php吗?

答案 1 :(得分:0)

首先,只是为了重新讨论已经提到的内容,更新您的DateTime以获取getFaculty(),并确保它指向getSchool()

现在,您需要在第一个下拉列表后使用ID getSchool.php创建一个div。

schoolList

现在,更新您的<div class="row" id="schoolList"></div> ,以便生成完整的表单/选择。有点像:

getSchool.php

一旦你掌握了这些想法,你就必须确保按照你想要的方式获得完整的页面流。然后按照类似的标准将任何输入发布到用于数据库操作的php页面。

正如之前的帖子所述,这种解决方案仍然让您容易注射。这是另一篇文章,另一天。