之前已选择值的HTML/PHP选择表单

之前已选择值的HTML/PHP选择表单,php,Php,我准备了一个简单的.php文档,允许用户选择要打印的值,然后将其发布到打印该值的php脚本中。以下是我使用的代码: <?php echo('<form method="post"> Select value: <select type="integer" name="val" value= ""> <option value="1">1</option> <option value="2">2&

我准备了一个简单的.php文档,允许用户选择要打印的值,然后将其发布到打印该值的php脚本中。以下是我使用的代码:

<?php
  echo('<form method="post">
    Select value:
    <select type="integer" name="val" value= "">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <input type="submit" name="submit" value="display"/>
    </form>');
  $val = $_POST['val'];
  echo($val);
?>
首先,
没有
type=“integer”
(它甚至不存在),也没有“type”开头,因此我们将删除它

<form method="post">
            Select value:
            <select name="val">
            <option value="1" <?php if(isset($_POST['val']) && $_POST['val'] == 1){ echo "selected";}?>>1</option><!-- check the posted value and compare it with option value and if equal then add selected attribute-->
            <option value="2" <?php if(isset($_POST['val']) && $_POST['val'] == 2){ echo "selected";}?>>2</option>
            <option value="3" <?php if(isset($_POST['val']) && $_POST['val'] == 3){ echo "selected";}?>>3</option>
            <option value="4" <?php if(isset($_POST['val']) && $_POST['val'] == 4){ echo "selected";}?>>4</option>
            <input type="submit" name="submit" value="display"/>
            </form>

<?php
    if(isset($_POST['val'])){ // check value is posted and set or not
        $val = $_POST['val'];
        echo($val);
    }
?>

选择值:
>2
>4
或者更好:-

<form method="post">
    Select value:
    <select name="val">
    <?php 
    for($i =1;$i<=4;$i++){ // start loop
        if(isset($_POST['val']) && $_POST['val'] == $i){ // check posted value is set and equal to option or not if yes then add selected.
            echo "<option value=$i selected>$i</option>";
        }else{
            echo "<option value=$i >$i</option>";
        }
    }
    ?>
    </select>
    <input type="submit" name="submit" value="display"/>
</form>         
<?php
    if(isset($_POST['val'])){ // check posted value is set or not
        $val = $_POST['val'];
        echo($val);
    }
?>

选择值:

注意:-文件扩展名必须是
.php

谢谢你的回答,这很有帮助!虽然多谢您的建议,但这次选项的数量固定为4。您能否解释一下,选定值保留在列表中是如何工作的?我不太明白它是从哪里来的:)谢谢,现在一切都清楚了!“for”循环的用法可能更正确,但它使我更难理解代码。还有,我现在明白了一切,非常感谢你的帮助和努力!可能很难理解,但正确的做法是,当数据动态出现时,您需要在该数据上设置选择框。另外,当前如果您想增加选项,则循环中的增量就足够了。
没有
type=“integer”
;-)它一开始就没有一个“类型”。@Fred ii-坦率地说,我很钦佩他,也很追随他。因为他总是像你一样给出正确的建议和代码。
没有
type=“integer”
;-)它一开始没有“类型”。