【发布时间】:2020-07-02 06:28:19
【问题描述】:
我正在开发一个 woocommerce 网站,我需要找到一种方法来对 optgroups 中的选择选项进行分组。
我的选项存储为数组,如
aray = [
"A4 1.9tdi (2003-2009)",
"A4 2.0tdi (2003-2009)",
"Passat B7 1.9tdi(2003-2009)",
"Passat B7 2.0 tdi(2003-2010)"
]
我需要的是通过 php 进行选择,通过使用字符串到第一个空格将 optgroup 中的选项分组
通过使用函数
explode(' ',$s, 2) or by strpos($inputString, ' ');
我可以根据需要拆分值。
我需要修改我当前用于显示选项的代码:
$html = '<span class="number">' . ($level + 1).'</span><select class="'.$class.'" name="'.$levelData['url_parameter'].'" '.$extra.'>;
foreach ( $this->getLevelOptions($level) as $val ){
$html .= '<option value="'.esc_attr( $val ).'" '.($val == $value ? 'selected' : '').'>'.esc_html( $val ).'</option>';
}
$html .= '</select>';
return $html;
所以我可以显示按 optgroup 分组的选项,例如:
A4 (optgroup)
A4 1.9tdi (2003-2009)
A4 2.0tdi (2003-2009)
Passat (optgroup)
Passat B7 1.9tdi(2003-2009)
Passat B7 2.0 tdi(2003-2010)
如果有人可以帮助我,我将不胜感激。
【问题讨论】:
-
您的 `$html 变量没有正确地用单引号关闭。可能只是复制粘贴错误。
-
您在寻找
<optgroup label="A4"> <option value="1.9tdi(2003-2009)">1.9tdi(2003-2009)</option> <option value="2.0td(2003-2009i(2003-2009)">2.0tdi(2003-2009)</option> </optgroup> <optgroup label="Passat"> <option value="1.9tdi(2003-2009)">1.9tdi(2003-2009)</option> <option value="2.0tdi(2003-2010)">2.0tdi(2003-2010)</option> </optgroup>这是您希望的显示方式吗?
标签: php select options optgroup