【问题标题】:CodeIgniter form_radio with set_valueCodeIgniter form_radio 和 set_value
【发布时间】:2021-02-13 23:17:18
【问题描述】:

我的表单和单选按钮有点问题,输入文本我这样做:

<?php echo form_input('lastname', set_value('lastname'), 'id=lastname'); ?>
<?php echo form_error('lastname'); ?>

当验证运行并且填写的输入字段获得返回的值时......我正在寻找的是一种使用单选按钮执行此操作的方法

<tr><td><?php echo form_label('Gender: ', 'gender'); ?></td><td><?php echo form_label('Male', 'male') . form_radio('gender', 'M', '', 'id=male'); ?><br><?php echo form_label('Female', 'female') . form_radio('gender', 'F', '', 'id=female'); ?></td><td><?php echo form_error('gender'); ?></td></tr>

如您所见,我的两个单选按钮都已经有 F 或 M 的值.....如何让选中的按钮返回选中?

【问题讨论】:

    标签: codeigniter radio-button


    【解决方案1】:

    来自用户指南:https://www.codeigniter.com/user_guide/helpers/form_helper.html

    form_radio()

    这个函数在所有方面都与 form_checkbox() 相同 上面的函数,除了将其设置为“无线电”类型。

    所以请继续阅读:

    form_checkbox()

    让您生成一个复选框字段。简单例子:

    echo form_checkbox('newsletter', 'accept', TRUE);
    

    会产生:

    <input type="checkbox" name="newsletter" value="accept" checked="checked" />
    

    第三个参数包含一个布尔值 TRUE/FALSE 来确定是否 是否应选中该框。

    所以在你的情况下,它可能是这样的:

    // Pass boolean value to third param
    // Example:
    $radio_is_checked = $this->input->post('gender') === 'F';
    
    echo form_radio('gender', 'F', $radio_is_checked, 'id=female');
    

    由于set_radio() 只返回一个字符串checked="checked",如果你真的想的话,你可以将它插入到第四个参数中,但这会产生一些难看的代码:

    echo form_radio('gender', 'F', NULL, 'id="female" '.set_radio('gender', 'F'));
    

    【讨论】:

      【解决方案2】:

      我为此使用三元运算符。 假设您的返回值为“M”(男)。例如,我正在制作 $selected 变量,并假设它的值为 M。

      <tr>
          <td>
              <?php echo form_label('Gender: ', 'gender'); ?>
          </td>
          <td>
              <?php echo form_label('Male', 'male') . form_radio(array('name' => 'gender', 'value' => 'M', 'checked' => ('M' == $selected) ? TRUE : FALSE, 'id' => 'male')); ?><br>
              <?php echo form_label('Female', 'female') . form_radio(array('name' => 'gender', 'value' => 'F', 'checked' => ('F' == $selected) ? TRUE : FALSE, 'id' => 'female')); ?>
          </td>
          <td>
              <?php echo form_error('gender'); ?>
          </td>
      </tr>
      

      【讨论】:

        【解决方案3】:

        这对我来说效果很好。即使我没有使用 form_helper,这也是更简单的方法。每个人都面临接受性别领域输入的问题:)

                       <input id="gender" name="gender" type="radio" class="" <?php if($gender=='0') echo "checked='checked'"; ?> value="0" <?php echo $this->form_validation->set_radio('gender', 0); ?> />
                        <label for="gender" class="">Male</label>
        
                        <input id="gender" name="gender" type="radio" class="" <?php if($gender=='1') echo "checked='checked'"; ?> value="1" <?php echo $this->form_validation->set_radio('gender', 1); ?> />
                        <label for="gender" class="">Female</label>
        
                        <input id="gender" name="gender" type="radio" class="" <?php if($gender=='2') echo "checked='checked'"; ?> value="2" <?php echo $this->form_validation->set_radio('gender', 2); ?> />
                        <label for="gender" class="">Others</label>
        

        我希望它会帮助某人:)

        【讨论】:

        • 只是一个小评论,if 子句中缺少 {} 大括号
        • @RomanT,考虑到只有带有“if”条件的语句,大括号不是强制性的,但最好有。
        【解决方案4】:

        这肯定行得通....

        <tr><td><?php echo form_label('Gender: ', 'gender'); ?></td><td><?php echo form_label('Male', 'male') . form_radio(array("name"=>"gender","id"=>"male","value"=>"M", 'checked'=>set_radio('gender', 'M', FALSE))); ?><br><?php echo form_label('Female', 'female') . form_radio(array("name"=>"gender","id"=>"female","value"=>"F", 'checked'=>set_radio('gender', 'F', FALSE))); ?></td><td><?php echo form_error('gender'); ?></td></tr>
        

        这样写我的单选按钮

        <?php form_radio(array("name"=>"gender","id"=>"female","value"=>"F", 'checked'=>set_radio('gender', 'F', FALSE))); ?>
        

        【讨论】:

        【解决方案5】:
        $_fldProyectoMostrar = array(
        "id"        => "_FLDPROYDER",
        "name"      => "_FLDPROYDER"
        );
        
        
        <?php echo form_radio($_fldProyectoMostrar, "FALSE",    set_radio("_FLDPROYDER", "FALSE", TRUE)); ?>NO
        
        <?php echo form_radio($_fldProyectoMostrar, "TRUE",     set_radio("_FLDPROYDER", "TRUE", FALSE )); ?>SI
        

        Donde el el el segundo valor del set radio, debe ser = al string value del form_radio

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-06-26
          • 2011-04-21
          • 2013-04-28
          • 1970-01-01
          • 2013-01-18
          • 2012-08-12
          • 1970-01-01
          相关资源
          最近更新 更多