我试图用PHP从数组中生成optgroup和选项,并生成它,但我的optgroup是错误的。它只显示第一个单词。在页面源中,它是正确的。
$my_array = array(
first optgroup => array(
key1 =>value1,
key2 => value2,
key3 => value3,
),
second optgroup => array(
key1 =>value1,
key2 => value2,
key3 => value3,
),
);
foreach ($my_array as $optgroup => $other_array) {
echo "<optgroup label=". $optgroup . ">";
foreach ($other_array as $key => $value) {
echo "<option value=" . $key . ">" . $value . "</option>";
}
echo "</optgroup>";
in the source code is fine:
<optgroup label=first optgroup>
<option value=key1>value1</option>
<option value=key2>value2</option>
.......但在我的选择框中,我只看到“第一”,而不是“第一选择组”。
有什么主意吗?谢谢!!
发布于 2014-09-09 16:50:47
您需要嵌入一些引号:
echo "<optgroup label=\"{$optgroup}\">";
^^-----------^^----注意,反斜杠在嵌入的引号上转义。这会产生
<optgroup label="foo bar">而不是
<optgroup label=foo bar>
^^^--- value for "label" attribute
^^^---unknown random attribute你现在在做什么
发布于 2014-09-09 16:54:17
尝尝这个,
$my_array = array(
'first optgroup' => array(
'key1' =>'value1',
'key2' => 'value2',
'key3' => 'value3',
),
'second optgroup '=> array(
'key1' =>'value1',
'key2' => 'value2',
'key3' => 'value3',
),
);
echo "<select>";
foreach ($my_array as $optgroup => $other_array) {
echo "<optgroup label=". $optgroup . ">";
foreach ($other_array as $key => $value)
echo "<option value=" . $key . ">" . $value . "</option>";
}
echo "</optgroup>";
});
echo "</select>";https://stackoverflow.com/questions/25749968
复制相似问题