选择元素 - 发布方法 - 返回值/ Php

时间:2017-01-10 13:22:02

标签: php database

我很难解决问题,以及如何让我的代码运作良好。

我的文本框正确回显而我的下拉框不是。

任何人都可以帮助我并清理我的代码吗?

我想知道你是怎么做到的,请你解释一下。

非常感谢你。

的index.php

<?php include 'test.php' ?>

<form method="post" action="index.php">
Textbox:    <input type="text" name="txt1" value="<?php echo $txt1;?>">
Dropdown:   <select name="drpdown1" value="<?php echo $drpdown1;?>">
                <option></option>
                <option value="1">Mark</option>
                <option value="2">Extreme</option>
            </select>
            <input type="submit" name="btn1">
</form>

test.php的

<?php
$txt1 = "";
$drpdown1 = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $txt1 = $_POST["txt1"];
    $drpdown1 = $_POST["drpdown1"];
}   
?>

2 个答案:

答案 0 :(得分:1)

您没有正确回显$drpdown1的值:

// this is wrong for a select:
<select name="drpdown1" value="<?php echo $drpdown1;?>">
  // etc.

如果您想自动选择之前选择的值,则需要添加selected属性:

<select name="drpdown1">
  <option value="1" <?php if ($drpdown1 === '1') { echo "selected='selected'"; } ?>>Mark</option>
  <option value="2" <?php if ($drpdown1 === '2') { echo "selected='selected'"; } ?>>Extreme</option>
  // etc.

答案 1 :(得分:0)

您必须了解有关下拉框的更多信息,因为您无法将值放在

 <select value="<?php echo $drpdown1;?>">

您必须直接比较选项内的值。示例

<select name="drpdown1">
    <?php
        if($drpdown1 == ""){
    ?>
             <option selected></option>
             <option value="1">Mark</option>
             <option value="2">Extreme</option>
    <?php
        }else if($drpdown1 == "1"){
    ?>
             <option></option>
             <option value="1" selected>Mark</option>
             <option value="2">Extreme</option>
    <?php
        }
    ?>
</select>