在php中填充选择框


Populate select boxes in php

我正在学习php,并且在一个页面上有一个表单。当您按下提交按钮(使用$_GET)时,它将与表单的其余部分一起进入一个新页面。

我正在一个选择框中计算成年人的人数。

如何$_GET值并将其放入选择选项中,以便填充?

下面是一个向self发布的表单示例。

在构建选项列表时,我们将根据用户提供的值检查值,如果它们匹配,则添加属性"selected"。

<?php
$options = array('3', '4', '5');
$adults  = null;
$error   = null;
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    $adults = isset($_POST['adults']) ? $_POST['adults'] : null;
    // Check the user supplied valid number.
    if(in_array($adults, $options)) {
        echo 'Valid post.';
        // Your processing.
    } else {
        $error = 'Invalid option for adult.';
    }
}
?>
<html>
<head><title>Select list form</title></head>
<body>
<?php if($error) echo $error; ?>
<form method="POST">
    Number of adults:<br />
    <select name="adults">
    <?php foreach($options as $number) { ?>
        <option value="<?php echo $number; ?>"
            <?php echo $number == $adults ? 'selected' : ''; ?>
        >
            <?php echo $number; ?>
        </option>
    <?php } ?>
    </select>
    <input type="submit" value="submit" >
</form>
</body>
</html>

提交表单时,您可以获得$_get[变量名称]发送的值;

如果你的选择是名称为adwn_number,你可以像这个一样检查它的选择

<select name="x">
<?php
$adult_number = $_GET['adult_number'];
for($i=0; $i<10; $i+=1)
{
    $selected = ($adult_number == $i ? 'selected' : '');
    echo '<option value="'.$i.'" '.$selected.' />';
}
?>

这将检查提交的金额是否等于$i(例如,从1到10),如果相等,它将选择该选项。

获取值并将其存储在数组中,然后进行循环以创建选择的选项。如果您使用像symfony这样的框架,您可以做得更干净。