簡體   English   中英

表單提交后未加載HTML選項標簽

[英]HTML option tags not loading after form submit

我有一個HTML頁面,可使用PHP從MySQL表中的select標簽中加載酒店列表。 select標簽在form標簽內。 每當我加載頁面時,都會加載option標記,但是當我提交formoption標記將不再加載。 formaction屬性為空,正在檢查同一頁面上的所有內容,但是當我將另一個php頁面作為action ,它將正常加載。 有沒有一種方法可以使提交后加載,同時保持formaction空?

這是我的代碼

<?php

require_once 'db.php';

$db = DB::get_instance();

if(isset($_POST['search'])) {
    $hotel = $_POST['hotel_list'];

    $db->query("SELECT * FROM hotels WHERE Name='$hotel'");
    $hotel = $db->result()->current();

    $hid = $hotel['Hid'];

    $db->query("SELECT * FROM rooms WHERE Hid='$hid'");
    $rooms = $db->result();

    $db->disconnect();
}

?>

<!doctype html>

<html>
    <head>
        <title>Display a hotel</title>
    </head>
    <body>
        <form action="" method="post" id="dsphtl">
            Name: <select name="hotel_list" form="dsphtl">
<?php
            $db->query("SELECT Name FROM hotels ORDER BY Name");
            foreach($db->result() as $row) {
                $t = $row['Name'];
                echo "<option value='$t'>$t</option>";
            }
?>
            </select>
            <input type="submit" value="Search" name="search">
        </form>
    </body>
</html>

如果設置了$_POST['search'] ,則您$db->disconnect(); 因此它無法在您的表單中運行查詢。

$db->disconnect(); if()語句中刪除,並將其放在文件末尾。

問題是與斷開連接有關,當您提交與mysql的連接后重新加載頁面時,由於

$db->disconnect();

<?php

    require_once 'db.php';

    $db = DB::get_instance();

    if(isset($_POST['search'])) {
        $hotel = $_POST['hotel_list'];

        $db->query("SELECT * FROM hotels WHERE Name='$hotel'");
        $hotel = $db->result()->current();

        $hid = $hotel['Hid'];

        $db->query("SELECT * FROM rooms WHERE Hid='$hid'");
        $rooms = $db->result();
    }

    ?>

    <!doctype html>

    <html>
        <head>
            <title>Display a hotel</title>
        </head>
        <body>
            <form action="" method="post" id="dsphtl">
                Name: <select name="hotel_list" form="dsphtl">
    <?php
                $db->query("SELECT Name FROM hotels ORDER BY Name");
                foreach($db->result() as $row) {
                    $t = $row['Name'];
                    echo "<option value='$t'>$t</option>";
                }
    ?>
                </select>
                <input type="submit" value="Search" name="search">
            </form>
        </body>
    </html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM