Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据PHP变量设置表单下拉列表_Php_Html_Mysql_Forms - Fatal编程技术网

根据PHP变量设置表单下拉列表

根据PHP变量设置表单下拉列表,php,html,mysql,forms,Php,Html,Mysql,Forms,我有一个下拉表单项,有四个选项 <p>Priority: <select required name=\"priority\"> <option default value=\"1\">1 - 10 days</option> <option value=\"2\">2 - 5 days</option> <option value=\"3\">3 - 48 hours</op

我有一个下拉表单项,有四个选项

<p>Priority: 
  <select required name=\"priority\">
    <option default value=\"1\">1 - 10 days</option>
    <option value=\"2\">2 - 5 days</option>
    <option value=\"3\">3 - 48 hours</option>
    <option value=\"4\">4 - 24 hours</option>
  </select>
</p>
优先级:
1-10天
2-5天
3-48小时
4-24小时

这些值已经以1,2,3,4的形式存储在SQL数据库中。我正在处理的页面是一个排序编辑页面,因此我希望在下拉列表中选择数据库中设置的任何值,以便用户在提交时不必重新选择该值。如何让它找到值并根据设置的内容选择正确的选项?我对这样的文本字段没有问题:

echo "<p>Cost: <input required type=\"text\" name=\"cost\" value=\"".$cost."\">";
echo“成本:”;

我是否必须为每个值执行四个不同的if语句
(if($priority==1){…})
等?

您不必为每个值执行四个不同的if语句。您必须执行四个if语句,每个值一个。

您不必为每个值执行四个不同的if语句。您必须执行四个if语句,每个值一个。

如果选项存储在关联数组中,您可以编写如下内容:

foreach ($options as $value => $label) {
    echo '<option value="', $value, '"', ($dbValue == $value ? ' selected="selected"' : ''), '>', $label, '</option>';
}
foreach($value=>$label的选项){
回显“”,$label“”;
}

如果选项存储在关联数组中,则可以编写如下内容:

foreach ($options as $value => $label) {
    echo '<option value="', $value, '"', ($dbValue == $value ? ' selected="selected"' : ''), '>', $label, '</option>';
}
foreach($value=>$label的选项){
回显“”,$label“”;
}
foreach($value=>$label形式的选项)
{
如果(isset($\u POST['priority'])&&&$\u POST['priority']==$value)
{
$selected='selected=“selected”';
}
其他的
{
$selected='';
}
回显“.$label.”;
}
foreach($value=>$label形式的选项)
{
如果(isset($\u POST['priority'])&&&$\u POST['priority']==$value)
{
$selected='selected=“selected”';
}
其他的
{
$selected='';
}
回显“.$label.”;
}

ya您必须这样做您还可以将值存储在数组中-使用值作为键,使用文本描述作为值;并反复进行。您仍然需要每次检查,但可能会减少键入次数,并且更易于维护。您必须这样做您还可以将值存储在数组中-使用值作为键,使用文本描述作为值;并反复进行。你仍然需要每次检查,但可能打字更少,而且更容易维护。我指的是后者,不是这样说的。谢谢你,我是说后者,我不是故意这么说的。非常感谢。