将元素从“选择列表”解析为 $_POST 以写入数据库


parse element from Select List to $_POST to write to database

我目前正在制作注册表并通过 $_POST 粘贴所有元素喜欢这个:

<input type="text" placeholder="Your username" name="username" value="<?php echo @$username; ?>">

我的问题是我想制作一个选择列表

<select name="Icecream Flavours">
    <option value="double chocolate">Double Chocolate</option>  
    <option value="vanilla">Vanilla</option>    
    <option value="strawberry" selected>Strawberry</option> 
    <option value="caramel">Caramel</option>
</select>

并粘贴所选参数,就像粘贴上面输入字段中的输入文本一样。

我设法通过列表完成了它,但它看起来很混乱,有时不适用于所有浏览器。

Yoor 的第一行代码应该是:

<input type="text" placeholder="Your username" name="username" value="<?php echo isset($_POST['username'])?$_POST['username']:null; ?>">

使用增压器运算符@是一种矫枉过正,并且会无缘无故地减慢脚本的速度。

对于您的选择字段,我会将值存储在一个数组中,然后循环访问它并将$_POST值与每个数组条目进行比较,如果trueselected添加到选项输出中。

所以你的代码变得有点像那样

<?php
$myOptions = array(
    'double' => 'Double chocolate', 
    'vanilla' => 'Vanilla', 
    'strawberry' => 'Strawberry'
    /* and so on */
);
?>
<select name="Icecream_Flavours">
<?php
foreach($myOptions as $key => $opt) {
   $selected = (!isset($_POST['Icecream_Flavours']) || $key != $_POST['Icecream_Flavours'])?null:' selected';
   echo '<option value="' . $key . '"' . $selected. '>' . $opt . '</option>';
}
?>
</select>