我使用此代码向用户显示下拉列表。提交表单时,我使用$_POST['newproduct']
来获取值。变量$isNewProduct
只能是0 or 1
。
index.php
<?php
require "db.php";
$link = mysqli_connect($_srvr, $_user, $_pass, $_db);
$query = "SELECT `new_product` FROM `products` WHERE `id`=1";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_array($result);
$isNewProduct = $row[0];
mysqli_close($link);
?>
<form action="update.php" method="post">
<select name="newproduct">
<option value="0" <?php echo $isNewProduct ? "" : "selected" ; ?> >No</option>
<option value="1" <?php echo $isNewProduct ? "selected" : "" ; ?> >Yes</option>
</select>
<input type="submit" value="Update" name="update_info_btn" />
</form>
update.php
if( isset($_POST['update_info_btn']) ) {
$new_product = $_POST['newproduct'];
// query to update the row with $new_product in DB.
}
现在,如果$isNewProduct = 1
,那么选项"YES"是预先选择的,当选项更改为"NO"并提交表单时,$_POST['newproduct']
总是给出1
。
同样,我还有一个下拉列表,其中我有大约20个选项,其中一个是在更改选项后提交表单时预先选择的,它总是给出预先选择的值。
用以下代码替换您的代码。。。
<?php
$newproduct='';
if(isset($_POST['newproduct'])
{
$newproduct=$_POST['newproduct'];
}
?>
<select name="newproduct">
<option value="0" <?php if($newproduct ==0){echo 'selected="selected"';} ?> >No</option>
<option value="1" <?php if($newproduct ==1){echo 'selected="selected"';} ?> >Yes</option>
</select>