获取选择选项的值,而无需刷新页面

问题描述 投票:1回答:2

我的问题很简单。

这是我的代码:

<?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类别 - “午餐菜单”,它会告诉我可用的午餐菜单。我在这里有没有问题。我的问题是:我选择的菜单(午餐或晚餐)后,页面会刷新,它会回来,就像--Menu类别 - 默认值,但它显示下面的正确的菜单。

我认为这个问题是在onchange="this.form.submit();

你们是否有这方面的任何解决方案?

php html drop-down-menu
2个回答
0
投票

您可以维持两个空的变量之一lunchmenu,另一个是晚餐菜单,一个用于defaultmenu,这些变量为“选择”,并根据“”关于POST变量如下改变。

从 “$ lunchmenu改变” 到 “选择” 时$ _POST [ '菜单'] === “lunchmenu” 从 “$ dinnermenu改变” 到 “选择” 时$ _POST [ '菜单'] === “dinnermenu”

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

0
投票

你应该使用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事件。

© www.soinside.com 2019 - 2024. All rights reserved.