在获取数据并查询以将其插入数据库后,保持选定的值

时间:2019-01-04 13:49:19

标签: php mysqli

我在php上有此onchange事件,如果用户选择一个选项,它将获取连接在其上的数据。但是,页面刷新并且用户的选择消失。另外,我无法将数据插入数据库。我尝试将form method =“ post”添加到form属性,但是不幸的是它无法获取数据。

先谢谢您。

  <?php

  $dsn = 'mysql:host=localhost;dbname=admin';
  $username = 'root';
 $password = '';

  try{
// Connect To MySQL Database
$con = new PDO($dsn,$username,$password);
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (Exception $ex) {

echo 'Not Connected '.$ex->getMessage();

}

$gradeassign = '';
$sectionassign = '';

 function getPosts()
 {
  $posts = array();

$posts[3] = $_POST['sectionassign'];
$posts[4] = $_POST['gradeassign'];

return $posts;
}

if(isset($_POST['addfac']))
{
$data = getPosts();

    $insertStmt = $con->prepare('INSERT INTO     
   facultyagain(sectionnumber,gradelevelassign) 
   VALUES(:sectionassign,:gradeassign)');
    $insertStmt->execute(array(
                ':sectionassign'=> $data[3],
                ':gradeassign'=> $data[4],
    ));

    if($insertStmt)
    {
            echo 'Data Inserted';
    }

       }


       ?>

            <html>
          <head>
          <title>Country</title>
       </head>
       <body>

       <form action="trial.php">
       Select Your grade
       <select name="gradeassign" onchange="this.form.submit()">
    <option value="" disabled selected>--select--</option>
    <option value="1">Grade 1</option>
    <option value="2">Grade  2</option>
    <option value="europe">Europe</option>
       </select>

       <?php
       require 'connection.php'; 
          if(isset($_GET["gradeassign"])){
          $gradeassign=$_GET["gradeassign"];

         $sql = "SELECT sectionassign FROM sections WHERE        gradeassign='$gradeassign'";
         $result = $con->query($sql);

       echo "<select>";
     if ($result->num_rows > 0) {
      // output data of each row
      while($row = $result->fetch_assoc()) {
       echo "<option value='$row[sectionassign]'>" . $row["sectionassign"]. "               </option>";
       }
       } else { echo "<B>0 Results</B>"; }
       echo "</select>";
   }
       ?>
       <BR>
       <button id="addfac" name="addfac">Add Faculty</button>
       </form>

   </body>
  </html>       

1 个答案:

答案 0 :(得分:0)

您还可以将值存储在变量中,并检查选项是否与变量匹配。例如:

 <option value="" disabled>--select--</option>
<option value="1" <?php if(isset($_GET['gradeassign'])) && $_GET['gradeassign'] == "1") echo "checked"; ?>>Grade 1</option>
<option value="2" <?php if(isset($_GET['gradeassign'])) && $_GET['gradeassign'] == "2") echo "checked"; ?>>Grade  2</option>
<option value="europe" <?php if(isset($_GET['gradeassign'])) && $_GET['gradeassign'] == "europe") echo "checked"; ?>>Europe</option>

更好的方法是使用循环创建整个列表。 Bu这应该工作。