Как разметить форму CakePHP, чтобы разрешить ввод текста внутри радиогруппы - PullRequest
0 голосов
/ 01 декабря 2011

Я использую CakePHP и FormHelper для генерации моей формы.

Однако мне нужно создать разметку, похожую на следующую структуру:

(radio1) [TEXT_INPUT] or more credits
(radio2) No Limit

Теперь я не уверен, как подойти к этому, но логически я представлял бы что-то вроде:

$options = array(
             'oneormore' => $this->Form->input( 'text_for_oneormore' ) . ' or more credits',
             'nolimit' => 'No Limit'
           );

echo $this->Html->radio( 'quantity', $options, array() );

У кого-нибудь есть идеи, которые они могут предложить? Я поставлен в тупик по этому вопросу.

Ответы [ 2 ]

1 голос
/ 01 декабря 2011

Один из способов - использовать опции 'before' и 'after', которые добавляют строку, которую вы туда поместили. Я думаю, что вы можете уйти с целыми полями там.

http://book.cakephp.org/view/1393/options-before-options-between-options-separator-a

Другой способ - создать свой собственный помощник на основе FormHelper.

0 голосов
/ 27 августа 2014

Я могу немного опоздать на шоу, но я столкнулся с этой проблемой при обновлении сайта до cakephp 2.x. Я обнаружил, что если я использую опцию «hiddenField» => false, я смог разделить переключатели и поместить текст или выбрать ввод между ними:

Your question relates to which of the following:<br>
<?php 
  echo $this->Form->radio("qOption", array('0' => 'Find a store'), array("label" => false, 'hiddenField' => false));
  echo $this->Form->radio("qOption", array('2' => 'Choose a Product'), array("label" => false, 'hiddenField' => false));
  echo $this->Form->select('product', $products, array());
  echo $this->Form->radio("qOption", array('1' => 'Other'), array("label" => false, 'hiddenField' => false));
  echo $this->Form->input("other", array("class"=>"f_12_darkgray", "size"=>"40", 'div' => false, "label" => false)); 
?>
...