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