如何标记CakePHP表单以允许在无线电组内输入文本

时间:2011-12-01 09:44:39

标签: php forms cakephp radio

我正在使用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 个答案:

答案 0 :(得分:1)

一种方法是使用'before'和'after'选项附加你放在那里的字符串。我想你可以逃离那里的整个田地。

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

另一种方法是根据FormHelper创建自己的帮助器。

答案 1 :(得分:0)

我可能有点迟到了,但我在将网站升级到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)); 
?>