Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.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和HTML表单选择列表_Php_Html_Forms - Fatal编程技术网

PHP和HTML表单选择列表

PHP和HTML表单选择列表,php,html,forms,Php,Html,Forms,我有一个编辑记录页面正在工作,但我有一个小问题,即显示为选择下拉列表的字段引用数据库中的关联值列表 我在数据库中有一些带有下拉列表的字段,但用户可以输入一个不在值列表中的值,这是正常行为。然而,我有一个在网上显示这个问题。以下是其中一个字段的代码: <select name="category"> <?php foreach($categories as $category) { $selected = ""; if( $category == $record-

我有一个编辑记录页面正在工作,但我有一个小问题,即显示为选择下拉列表的字段引用数据库中的关联值列表

我在数据库中有一些带有下拉列表的字段,但用户可以输入一个不在值列表中的值,这是正常行为。然而,我有一个在网上显示这个问题。以下是其中一个字段的代码:

<select name="category">
<?php
foreach($categories as $category) {
    $selected = "";
    if( $category == $record->getField('category') ){
            $selected = " selected";
    }
    $category = htmlspecialchars($category);
    ?>
    <option value="<?php echo $category; ?>"<?php echo $selected; ?>><?php echo         $category; ?></option>
<?php
}
?>
</select>

“字段”是什么意思?您是指
$record->getField('category')
?如果希望将该值包括在选择列表中,即使它不是
$category
数组中的条目,请执行以下操作:

<select name="category">

    <?php

        $output = "";
        $selected = false;

        foreach ($categories as $category) {

            $output .= "<option value=\"$category\"";

            if ($category == $record->getField('category')) {
                $selected = true;
                $output .= " selected";
            }

            $output += ">$category</option>";
        }

        if (!$selected) {
            $chosen = $record->getField("category");
            $output = "<option value=\"$chosen\" selected>$chosen</option>" . $output;
        }

        echo $output;

    ?>

</select>


感谢您的回复-是,$record->getField('category')变量中的值可能/可能不存在于$categories数组中。我尝试了你的代码,没有错误,但我只得到了以下输出:0你能看到PHP代码中的语法错误或我可能遗漏的其他内容吗?我想知道这里使用“+=”运算符是否正确?是的,你是对的,它应该是
=
。将它与Javascript混合在一起,抱歉。