[英]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.