php codeigniter - 表单助手 - 如何在无线电输入上实现 set_value

Posted

技术标签:

【中文标题】php codeigniter - 表单助手 - 如何在无线电输入上实现 set_value【英文标题】:php codeigniter - form helper - How to implement set_value on radio input 【发布时间】:2011-12-20 10:33:33 【问题描述】:

我正在使用 codeigniters 表单助手为我的网站设置反馈表单。

我的表单已创建并已实施验证,一切正常。

我唯一的问题是添加 set_value() 函数以在发生错误时重新填充表单。

我无法让它在我的收音机输入上工作,你如何将 set_value() 函数添加到收音机类型。

代码:

      <ul> 
          <li><?php echo form_radio('found_by', 'newspaper_advert', set_value('found_by')); ?> Newspaper advert</li>
          <li><?php echo form_radio('found_by', 'press_release', set_value('found_by')); ?> Press release</li>
          <li><?php echo form_radio('found_by', 'text_message', set_value('found_by')); ?> Text message</li>
          <li><?php echo form_radio('found_by', 'email', set_value('found_by')); ?> Email</li>
          <li><?php echo form_radio('found_by', 'refferal', set_value('found_by')); ?> Referred to by a friend</li>
          <li><?php echo form_radio('found_by', 'telemarketing', set_value('found_by')); ?> Telemarketing</li>
          <li><?php echo form_radio('found_by', 'leaflet_flyer', set_value('found_by')); ?> Leaflet or flyer</li>
          <li><?php echo form_radio('found_by', 'radio', set_value('found_by')); ?> Radio</li>
          <li><?php echo form_radio('found_by', 'television', set_value('found_by')); ?> Television</li>
          <li><?php echo form_radio('found_by', 'internet_advert', set_value('found_by')); ?> Internet advert</li>
          <li><?php echo form_radio('found_by', 'search_engine', set_value('found_by')); ?> Search engine</li>
          <li><?php echo form_radio('found_by', 'none', set_value('found_by')); ?> None of the above</li>
      </ul>

【问题讨论】:

【参考方案1】:
<input type="radio" name="myradio" value="1" <?php echo  set_radio('myradio', '1'); ?> />
<input type="radio" name="myradio" value="2" <?php echo  set_radio('myradio', '2'); ?> />
<input type="radio" name="myradio" value="3" <?php echo  set_radio('myradio', '3'); ?> />
<input type="radio" name="myradio" value="4" <?php echo  set_radio('myradio', '4'); ?> />

就是这么简单……

【讨论】:

【参考方案2】:

试试这个,它对我有用:

性别:

< ?php echo form_radio("gender", "Female", NULL, set_radio('gender', 'Female')); ?>Female

< ?php echo form_radio("gender", "Male", NULL, set_radio('gender', 'Male')); ?>Male

【讨论】:

【参考方案3】:
<?= form_radio('found_by', 'newspaper_advert', $found_by == 'newspaper_advert'); ?>

【讨论】:

【参考方案4】:
 <?php echo form_radio( array( 'name'=> 'age_group','id'=>'age_group','class'=> 'input-xsmall focused inputError','type'=>'radio',set_radio('age_group', 'under 18', TRUE) ) ). "under 18"; ?><br />
            <?php echo form_radio( array( 'name'=> 'age_group','id'=>'age_group','class'=> 'input-xsmall focused inputError','type'=>'radio',set_radio('age_group', '18 to 29', TRUE) ) ). "18 to 29"; ?><br />
            <?php echo form_radio( array( 'name'=> 'age_group','id'=>'age_group','class'=> 'input-xsmall focused inputError','type'=>'radio',set_radio('age_group', '30 to 49', TRUE) ) ). "30 to 49"; ?><br />
            <?php echo form_radio( array( 'name'=> 'age_group','id'=>'age_group','class'=> 'input-xsmall focused inputError','type'=>'radio',set_radio('age_group', 'above 49', TRUE) ) ). "above 49"; ?>

是正确的代码吗??

【讨论】:

【参考方案5】:

set_value 仅适用于输入和文本区域。你需要set_radio

set_radio()

允许您以提交状态显示单选按钮。 这个函数和上面的 set_checkbox() 函数是一样的。

<input type="radio" name="myradio" value="1" <?php echo set_radio('myradio', '1', TRUE); ?> />
<input type="radio" name="myradio" value="2" <?php echo set_radio('myradio', '2'); ?> />

来自文档页面:http://codeigniter.com/user_guide/helpers/form_helper.html

【讨论】:

对我不起作用,我使用值 0 和 1 而不是 1 和 2,有什么线索吗? @Chumillas,您是否在 set_radio 函数中将 0 和 1 作为字符串传递? 是的,和你一样 问题是当用户没有在表单中上传图片时,验证会因“您没有选择要上传的文件”而中断。并且 set_radio 不再起作用。如果用户上传图片,set_radio 会在另一个字段破坏验证时起作用。

以上是关于php codeigniter - 表单助手 - 如何在无线电输入上实现 set_value的主要内容,如果未能解决你的问题,请参考以下文章

codeigniter 覆盖表单助手中的 set_value 函数,使用 MY_helper 在获取时重新填充字段,同时发布

PHP CodeIgniter的资产助手

框架助手,它们的用途是什么?

PHP Codeigniter 数据库助手类“未使用表”

如何在每个页面中加载 CodeIgniter 助手?

在 CodeIgniter 中验证表单下拉列表