Поле выбора формы клона с опцией .CakePHP

1

Обычно я всегда использовал помощник формы CakePHP, чтобы отображать окно выбора с опциями.

Я хотел бы знать, могу ли я создать его вручную (я имею в виду без помощника формы CakePHP)?

Пример. Использование хэдпера формы cakephp для создания окна выбора.

<?php echo $this->Form->input('product_name',array('options'=>$myoptions));?> 

Но я хочу сделать что-то вроде ниже

<select name="data[Product][product_name]" id="product">
 <options value="1">One</options>
<options value="2">Two</options>
<options value="3">Three</options>
</select>

Есть идеи? Спасибо CakePHP 2.5.7

--РЕДАКТИРОВАТЬ--

Я хочу клонировать несколько блоков выбора, которые будут следовать за структурой формы CakePHP.

Ладно, проблема здесь начинается. По умолчанию я использовал бы CakePHP form helper чтобы нарисовать окно выбора и их параметры.

Я написал такой код:

<?php echo $this->Form->input('Redemption.0.type_id',array('class'=>'form-control','id'=>'selectProduct','label'=>false,'empty'=>'Choose Type','options'=>$types));?>

Он вернется в структуру HTML, как показано ниже:

<select name="data[Redemption][0][type_id]" class="form-control" id="selectProduct">
<option value="">Choose Type</option>
<option value="1">Toner</option>
<option value="2">Ink Catridge</option>
</select>

Я хочу клонировать существующее поле выбора выше в новое поле выбора, но с другим именем, например:

<select name="data[Redemption][1][type_id]" class="form-control" id="selectProduct">
    <option value="">Choose Type</option>
    <option value="1">Toner</option>
    <option value="2">Ink Catridge</option>
    </select>

Обратите внимание, что целочисленное значение по name="data[Redemption][1][type_id]" увеличилось. Это то, что я хотел.

Но теперь я не собираюсь делать клонирование с изменением данных, как указано. Я попробовал несколько jquery-методов, таких как.clone().append(), но он не работает, поскольку данные параметров внутри поля выбора становятся излишними.

Можете ли вы, пожалуйста, рассказать мне, как дублировать/клонировать поле выбора в CakePHP?

Благодарю. CakePHP 2.5.7

  • 3
    почему ты хочешь сделать это? Конечно, это возможно, но если вы не нашли конкретного ограничения FormHelper нет особых причин делать это вручную.
  • 0
    так как я хочу динамически добавить несколько полей выбора, скажем, я хочу, чтобы поле товаров можно было увеличить, когда пользователь нажимает кнопку «добавить больше», в то время как данные опций в поле выбора одинаковы.
Показать ещё 4 комментария
Теги:
cakephp

2 ответа

0

Вы можете добавить другие условные значения к вашим опциям выбора, просто добавив значения в массив переменных следующим образом:

$myOptions = array(
    '1' => 'One',
    '2' => 'Two',
    '3' => 'Three'
);

// If user make some action
if($someAjaxAction == true) {
   $myOptions[4] = 'Four';
}

echo $this->Form->input('product_name', array('options' => $myOptions));
0
<?php
    echo $this->Form->input( 'product_name', array(
        'type' => 'select',
        'options' => array(
            'key1' => 'val1',
            'key2' => 'val2',
        ),
        'empty' => true,
    ));
?>
  • 0
    Ответы только для кода не так полезны, как ответы с рабочим кодом и полезными объяснениями. В этом случае стоило бы объяснить этот ответ 5-летнему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню