添加空间以从XML中多选Zend Framework 1.12表单


Adding space to multiselect Zend Framework 1.12 Forms from XML

我想知道在从XML文件创建Zend表单时,如何为多选值添加空格。

尝试了以下操作:

<?xml version="1.0" encoding="UTF-8"?>
<settingsinfo>
    <lp_form_label_font_family>
        <type>Select</type>
        <options>
            <label>Landing Page Form Label Font Family</label>
            <description>Landing Page Form Label Font Family</description>
            <multioptions>
                <option value="Open Sans">Open Sans</option>
                <option value="Droid Sans">Droid Sans</option>
                <option value="Sans Serif" >Sans Serif</option>
                <option value="Arial">Arial</option>
                <option value="Helvetica">Helvetica</option>
            </multioptions>
            <required></required>
        </options>           
    </lp_form_label_font_family>
</settingsinfo>

以上生成:

<dd id="lp_form_label_font_family-element">
<select name="lp_form_label_font_family" id="lp_form_label_font_family" class="described">
    <optgroup id="lp_form_label_font_family-optgroup-option" label="option">
    <option value="0">Open Sans</option>
    <option value="1">Droid Sans</option>
    <option value="2">Sans Serif</option>
    <option value="3">Arial</option>
    <option value="4">Helvetica</option>
    </optgroup>
</select>
<p class="description">Landing Page Form Label Font Family</p></dd>

尝试使用:

<?xml version="1.0" encoding="UTF-8"?>
<settingsinfo>
    <lp_form_label_font_family>
        <type>Select</type>
        <options>
            <label>Landing Page Form Label Font Family</label>
            <description>Landing Page Form Label Font Family</description>
            <multioptions>
                <OpenSans>Open Sans</OpenSans>
                <DroidSans>Droid Sans</DroidSans>
                <sans-serif>Sans Serif</sans-serif>
                <arial>Arial</arial>
                <helvetica>Helvetica</helvetica>
            </multioptions>
            <required></required>
        </options>
    </lp_form_label_font_family>
</settingsinfo>

生成:

<dd id="lp_form_label_font_family-element">
<select name="lp_form_label_font_family" id="lp_form_label_font_family" class="described">
    <option value="OpenSans">Open Sans</option>
    <option value="DroidSans">Droid Sans</option>
    <option value="sans-serif">Sans Serif</option>
    <option value="arial">Arial</option>
    <option value="helvetica">Helvetica</option>
</select>
<p class="description">Landing Page Form Label Font Family</p></dd>

这已经足够接近了,但我需要值的空间。

我真的需要,例如:

<dd id="lp_form_label_font_family-element">
<select name="lp_form_label_font_family" id="lp_form_label_font_family" class="described">
    <option value="Open Sans">Open Sans</option>
    <option value="Droid Sans">Droid Sans</option>
    <option value="sans-serif">Sans Serif</option>
    <option value="arial">Arial</option>
    <option value="helvetica">Helvetica</option>
</select>
<p class="description">Landing Page Form Label Font Family</p></dd>

关于如何为字体族的值添加空格,有什么线索吗?我应该如何更改此XML?

您可以尝试重新创建元素的选项,如下所示:

$select = $form->getElement('lp_form_label_font_family');
$options = array();
foreach($form->getElement('lp_form_label_font_family')->getMultiOptions() as $option){
    $options[$option] = $option;
}
$form->getElement('lp_form_label_font_family')->setMultiOptions($options);