【问题标题】:PHP Codeigniter: set_value on dropdown menuPHP Codeigniter:下拉菜单上的 set_value
【发布时间】:2021-07-08 13:46:20
【问题描述】:

我有以下视图,但如何将set_value 应用到它而不默认为请选择?

<label for="add_fields_type">Type: </label>
<select name="add_fields_type" id="add_fields_type">
    <option value="">Please Select</option>
    <option value="<?php echo set_value('input'); ?>">Input</option>
    <option value="<?php echo set_value('textarea'); ?>">Text Area</option>
    <option value="<?php echo set_value('radiobutton'); ?>">Radio Button</option>
    <option value="<?php echo set_value('checkbox'); ?>">Check Box</option>
</select>

更新:

查看:

<label for="add_fields_placeholder">Placeholder: </label>
    <select name="add_fields_placeholder" id="add_fields_placeholder">
        <option value="">Please Select</option>
        <option value="<?php echo set_value('yes'<?php echo set_select('add_fields_placeholder','yes', ( !empty($placeholderType) && $placeholderType == "yes" ? TRUE : FALSE ));?>">Yes</option>
        <option value="<?php echo set_value('no' <?php echo set_select('add_fields_placeholder','no', ( !empty($placeholderType) && $placeholderType == "no" ? TRUE : FALSE )); ?>">No</option>
    </select>

    <label for="add_fields_placeholderValue">Placeholder Text: </label>
    <input type="text" name="add_fields_placeholderValue" id="add_fields_placeholderValue" value="<?php echo set_value('add_fields_placeholderValue'); ?>">

    <label for="add_fields_type">Type: </label>
<select name="add_fields_type" id="add_fields_type">
    <option value="">Please Select</option>
    <option value="input" <?php echo set_select('add_fields_type','input', ( !empty($fieldType) && $fieldType == "input" ? TRUE : FALSE )); ?>>Input</option>
    <option value="textarea" <?php echo set_select('add_fields_type','textarea', ( !empty($fieldType) && $fieldType == "textarea" ? TRUE : FALSE )); ?>>Text Area</option>
    <option value="radiobutton" <?php echo set_select('add_fields_type','radiobutton', ( !empty($fieldType) && $fieldType == "radiobutton" ? TRUE : FALSE )); ?>>Radio Button</option>
    <option value="checkbox" <?php echo set_select('add_fields_type','checkbox', ( !empty($data) && $data == "checkbox" ? TRUE : FALSE )); ?>>Check Box</option>
</select>

控制器:

$data['fieldType'] = $this->input->get('add_fields_type');
$data['placeholderType'] = $this->input->get('add_fields_placeholder');

第 16 行:

<option value="<?php echo set_value('yes'<?php echo set_select('add_fields_placeholder','yes', ( !empty($placeholderType) && $placeholderType == "yes" ? TRUE : FALSE ));?>">Yes</option>

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    这应该会有所帮助:

    控制器(test.php)

    <?php
        class Setup extends CI_Controller {
    
            function index() {
                //for the set_select() function
                $this->load->library('form_validation');
    
                //for base_url() function
                $this->load->helper('url');
    
                $list['data'] = $this->input->get('add_fields_type');
    
                $this->load->view('test_view.php', $list);
            }
    ?>
    

    查看 (test_view.php)

    <!DOCTYPE HTML>
    <html>
    <body>
    <form action="<?php echo base_url(); ?>test">
        <label for="add_fields_type">Type: </label>
        <select name="add_fields_type" id="add_fields_type">
            <option value="">Please Select</option>
            <option value="input" <?php echo set_select('add_fields_type','input', ( !empty($data) && $data == "input" ? TRUE : FALSE )); ?>>Input</option>
            <option value="textarea" <?php echo set_select('add_fields_type','textarea', ( !empty($data) && $data == "textarea" ? TRUE : FALSE )); ?>>Text Area</option>
            <option value="radiobutton" <?php echo set_select('add_fields_type','radiobutton', ( !empty($data) && $data == "radiobutton" ? TRUE : FALSE )); ?>>Radio Button</option>
            <option value="checkbox" <?php echo set_select('add_fields_type','checkbox', ( !empty($data) && $data == "checkbox" ? TRUE : FALSE )); ?>>Check Box</option>
        </select>
        <input type="submit" />
    </form>
    </body>
    </html>
    

    注意:set_select()的第三个参数决定是否应该选择

    【讨论】:

    • 谢谢,我收到解析错误:语法错误,意外'?'
    • 我现在已经给出了完整的 ControllerView 代码。只需复制粘贴并尝试。
    • &lt;option value="yes" &lt;?php echo set_select('add_fields_placeholder','yes', ( !empty($placeholderType) &amp;&amp; $placeholderType == "yes" ? TRUE : FALSE ));?&gt;&gt;Yes&lt;/option&gt;替换错误行
    【解决方案2】:

    就像 Abid 所说的那样,您只需在表单验证后使用 set_value()。

    form_dropdown('add_fields_type', $field_types, set_value('field_type'));
    

    【讨论】:

      【解决方案3】:

      试试这个:

      <option value="<?php echo set_value('textarea'); ?>" <?php echo (set_value('textarea')=='TEXTAREA')?" selected=' selected'":""?>>Text Area</option>
      

      高于 TEXTAREA 的值是您希望在该选项上出现的值

      【讨论】:

        【解决方案4】:

        试试这个:-

        查看网址:-- http://codeigniter.com/user_guide/helpers/form_helper.html

        $options = array(
                          'small'  => 'Small Shirt',
                          'med'    => 'Medium Shirt',
                          'large'   => 'Large Shirt',
                          'xlarge' => 'Extra Large Shirt',
                        );
        
        $shirts_on_sale = array('small', 'large');
        
        echo form_dropdown('shirts', $options, 'large');
        

        // 会产生:

        <select name="shirts">
        <option value="small">Small Shirt</option>
        <option value="med">Medium Shirt</option>
        <option value="large" selected="selected">Large Shirt</option>
        <option value="xlarge">Extra Large Shirt</option>
        </select>
        
        echo form_dropdown('shirts', $options, $shirts_on_sale);
        

        // 会产生:

        <select name="shirts" multiple="multiple">
        <option value="small" selected="selected">Small Shirt</option>
        <option value="med">Medium Shirt</option>
        <option value="large" selected="selected">Large Shirt</option>
        <option value="xlarge">Extra Large Shirt</option>
        </select>
        

        【讨论】:

          【解决方案5】:

          要使用 set_select,您需要有针对相关字段的验证规则。在此处查看我对类似问题的回答: CodeIgniter select_value in form_dropdown

          【讨论】:

            【解决方案6】:

            使用javascript更容易(已测试)

            <select name="add_fields_type" id="add_fields_type">
             <option value="">Please Select</option>
             <option value="Input">Input</option>
             <option value="Text Area">Text Area</option>
             <option value="Radio Button">Radio Button</option>
             <option value="Check Box">Check Box</option>
            </select>
            
            
             <script>
                document.getElementById('select_status').value="<?php echo set_value('status'); ?>";
             </script>
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-01-08
              • 2012-08-22
              • 1970-01-01
              • 2012-10-22
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多