Php 在不刷新页面的情况下获取select选项的值

Php 在不刷新页面的情况下获取select选项的值,php,html,drop-down-menu,Php,Html,Drop Down Menu,我的问题很简单 这是我的代码: <?php include "../../../koneksi.php"; ?> <html> <body> <form action="" method="POST"> <?php if($_POST['menu'] === "lunchmenu"){ $result = mysqli_query($conn,"SELECT * FROM tb

我的问题很简单

这是我的代码:

<?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变量,如下所示

当$\u POST['menu']==午餐菜单时,$午餐菜单从更改为选中 当$\u POST['menu']==dinnermenu时,$dinnermenu从更改为选中


您可以维护两个空变量,一个用于午餐菜单,另一个用于晚餐菜单,另一个用于defaultmenu,将这些变量更改为selected并基于POST变量,如下所示

当$\u POST['menu']==午餐菜单时,$午餐菜单从更改为选中 当$\u POST['menu']==dinnermenu时,$dinnermenu从更改为选中


您应该使用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事件调用该函数

您应该使用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事件调用该函数

非常感谢你回答我的问题。这解决了我90%的问题。这里的一个小问题是刷新页面。我的表单位于页面底部,因此在我选择类别菜单午餐或晚餐后,它将刷新一次并返回页面顶部。。我觉得这很烦人,虽然所有的结果都是正确的。请检查编辑后的答案。您可以使用页面滚动,以便转到页面重新加载的表单部分非常感谢您回答我的问题。这解决了我90%的问题。这里的一个小问题是刷新页面。我的表单位于页面底部,因此在我选择类别菜单午餐或晚餐后,它将刷新一次并返回页面顶部。。我觉得这很烦人,虽然所有的结果都是正确的。请检查编辑后的答案。您可以使用page scroll(页面滚动)转到页面重新加载上的表单部分谢谢您的建议。。但我还是个初学者。我对Ajax以及如何使用它一无所知。我的网络编程技能只有4个月,还在学习PHP、CSS、HTML、MySQL和bootstrap。谢谢你的建议。。但我还是个初学者。我对Ajax以及如何使用它一无所知。我的网络编程技能只有4个月,仍然在学习PHP、CSS、HTML、MySQL和bootstrap。。