我如何在用户输入后更新表单,然后再发布

时间:2018-12-14 16:24:26

标签: php mysql

我试图让用户从复选框中进行选择,然后向他显示正确的列表。

这是我的代码:

    qualification: <select name="qualification">
    <option value="ET">ET</option>
    <option value="TM">TM</option>
</select><br> 
current registration: <input type="checkbox" name="classRegular" value="RegularClass">Regular Class<br>
    <input type="checkbox" name="classTaahdoh" value="Taahdoh">Taahdoh<br>

    <?php
    $selectedQualification = $_POST['qualification'];  // Storing Selected Value In Variable

    if(isset($_POST['classRegular'])){

      if ( $selectedQualification == "ET") {
        echo 'Class: <select name="regularClass">';
        $sql = "SELECT idClass FROM Class Where category = 'ET' ";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
          //output data of each row in dropdown list
          while($row = $result->fetch_assoc()) {
            echo "<option value='{".$d['idClass']."}'>".$d['idClass']."</option>";
          }
        } else {
          echo '0 results';
        }
    ?>

在用户检查班级类型后,它不会显示列表, 是因为我用“ POST”检查了吗? 我还能做些其他选择吗?

请帮忙吗?

2 个答案:

答案 0 :(得分:0)

如果要在用户检查班级类型后显示列表,请删除

if(isset($_POST['classRegular'])) {

if代码块。然后每次都会显示答案列表。

答案 1 :(得分:0)

1。无法将结果发送到页面。除非您使用提交按钮或ajax

2。没有与数据库的连接。

因此添加类似以下代码的内容:

<?php

define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'yourpassword');
define('DB_NAME', 'yourwebsite');

/* Attempt to connect to MySQL database */
try{
    $pdo = new PDO("mysql:host=" . DB_SERVER . ";dbname=" . DB_NAME, DB_USERNAME, DB_PASSWORD);
    // Set the PDO error mode to exception
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("ERROR: Could not connect. " . $e->getMessage());
}
?>

还使用了准备好的语句。是的,您不是直接接受用户输入,但是恶意用户仍然可以检查页面并将选项的值更改为危险的值。