首页 文章

如何从PHP中选择预先选择的选项中获取值

提问于
浏览
0

我正在使用此代码显示用户的下拉列表 . 提交表单时,我使用 $_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个选项,一个是在更改选项后提交表单时预先选择的,它总是给出预选值 .

1 回答

  • 0

    用以下代码替换您的代码......

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

相关问题