簡體   English   中英

獲取選擇選項的值而無需刷新頁面

[英]Get the value of select option without refreshing the page

我的問題很簡單。

這是我的代碼:

<?php 
    include "../../../koneksi.php";  
?>
<html>
<body>
<form action="" method="POST">
    <?php  
        if($_POST['menu'] === "lunchmenu"){
            $result = mysqli_query($conn,"SELECT * FROM tb_lunch");
        } else{
            $result = mysqli_query($conn,"SELECT * FROM tb_dinner");
        }
    ?>
    <table>
        <tr>
            <td>Kategori Menu</td>
            <td>
                <select name="menu" onchange="this.form.submit();">
                    <option selected="true" disabled>-- Menu Category --</option>
                    <option value="lunchmenu">Lunch Menu </option>
                    <option value="dinnermenu">Dinner Menu </option>
                </select>
            </td>
        </tr>
        <tr>
            <td>Menu Name</td>
            <td>
                <select>
                    <?php  
                    if($_POST['menu'] === "lunchmenu")
                        $i = 1;
                        while ( $row = mysqli_fetch_assoc($result)):
                    ?>
                    <option> <?=$row[menu_name]; ?></option>
                    <?php       
                        $i++;
                        endwhile; 
                    ?>
                    <?php
                    if($_POST['menu'] === "dinnermenu")
                        $i = 1;
                        while ( $row = mysqli_fetch_assoc($result)):
                    ?>
                    <option> <?=$row[menu_name]; ?></option>
                    <?php       
                        $i++;
                        endwhile; 
                    ?>
                </select>
            </td>
        </tr>
    </table>
</form>
</body>
</html>

我想要的結果非常簡單。 當我從“菜單類別”中選擇“午餐菜單”時,它將顯示可用的午餐菜單。 我在這里沒問題。 我的問題是:選擇菜單(午餐或晚餐)后,頁面將刷新,並且會像--Menu Category--的默認值一樣返回,盡管它在下面顯示了正確的菜單。

我認為問題出在onchange="this.form.submit();

你們對此有什么解決方案嗎?

您可以維護兩個空變量,一個用於午餐菜單,另一個用於晚餐菜單,一個用於默認菜單,根據以下POST變量將這些變量更改為“ selected”和“”。

當$ _POST ['menu'] ===“ lunchmenu”時,$ lunchmenu從“”更改為“ selected”
當$ _POST ['menu'] ===“ dinnermenu”時,$ dinnermenu從“”更改為“ selected”

 <?php include "../../../koneksi.php"; ?> <html> <body> <form action="" method="POST"> <?php $defaultmenu = 'selected'; $lunchmenu = ''; $dinnermenu = ''; if($_POST['menu'] === "lunchmenu"){ $lunchmenu = "selected"'; $defaultmenu = ''; $result = mysqli_query($conn,"SELECT * FROM tb_lunch"); } else{ $dinnermenu = "selected"'; $defaultmenu = ''; $result = mysqli_query($conn,"SELECT * FROM tb_dinner"); } ?> <table> <tr> <td>Kategori Menu</td> <td> <select name="menu" onchange="this.form.submit();"> <option <?php echo $defaultmenu ;?> disabled >-- Menu Category --</option> <option value="lunchmenu" <?php echo $lunchmenu;?> > Lunch Menu </option> <option value="dinnermenu" <?php echo $dinnermenu;?> > Dinner Menu </option> </select> </td> </tr> <tr> <td>Menu Name</td> <td> <select> <?php if($_POST['menu'] === "lunchmenu") $i = 1; while ( $row = mysqli_fetch_assoc($result)): ?> <option> <?=$row[menu_name]; ?></option> <?php $i++; endwhile; ?> <?php if($_POST['menu'] === "dinnermenu") $i = 1; while ( $row = mysqli_fetch_assoc($result)): ?> <option> <?=$row[menu_name]; ?></option> <?php $i++; endwhile; ?> </select> </td> </tr> </table> </form> <script> $( document ).ready(function() { $('html, body').animate({ scrollTop: $("#menuform").offset().top }, 2000); return false; }); </script> </body> </html> 

您應該使用Ajax。 它將根據更改為您提供值,而無需刷新頁面。

    $.ajax({
type: "GET",
url: 'test.php', // Here is your link which will give you desired values.
success: function(data){
    alert(data);
},
error: function(){
 alert(data)
 }
});

將此綁定到函數中,然后從下拉菜單的onchange事件中調用該函數。

暫無
暫無

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

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