Оставьте значение выбранным после извлечения данных и запроса, чтобы вставить его в базу данных - PullRequest
0 голосов
/ 04 января 2019

У меня есть это событие onchange на php, если пользователь выбирает опцию, он выбирает данные, связанные с ним. Однако страница обновляется и выбор пользователя исчезает. Также я не могу вставить данные в базу данных. Я попытался добавить метод method = "post" к атрибуту формы, но, к сожалению, он не может получить данные.

Спасибо заранее.

  <?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 голосов
/ 04 января 2019

Вы также можете сохранить значение в переменной и проверить, соответствует ли параметр переменной. Например:

 <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>

Лучший способ сделать это - создать весь список с циклом. Но это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...