【问题标题】:How I get the text instead value from a select option in CodeIgniter我如何从 CodeIgniter 中的选择选项中获取文本而不是值
【发布时间】:2014-07-19 19:34:39
【问题描述】:

我有一个表单,其中有一个包含许多选项的选择字段。这些选项在选项标签之间具有数值和文本。当我通过提交按钮发布表单时,我想要做的是获取文本而不是值。

生成选择字段的视图:

echo form_dropdown('pos', $pos_options, '100', 'id="pos_select" class="form_input"'); 

生成的选择部分:

<select name="pos" id="pos_select" class="form_input">
    <option value="0">about_history_title</option>
    <option vlaue="1">about_history</option>
</select>

提交表单时,通过控制器调用相应的模型(text.php):

text.php -> insert_text()

$this->admin_text_model->insert_text();

admin_text_model.php

public function insert_text()
{
    $data = array(
        'tx_page' => $this->input->post('page'),
        'tx_pos' => $this->input->post('pos'),
        'tx_body' => $this->input->post('add_text')
    );

    return $this->db->insert('text', $data);
}

有没有办法可以在 $this->input->post('pos') 中获取选项标签内的文本?

也许是这样的:

'tx_pos' => $this->input->post('pos')->text?

【问题讨论】:

  • 我认为没有没有办法得到这样的你可以设置它的价值并得到
  • 很遗憾,我无法将文本设置为值
  • 为什么不同时传递整数和逗号分隔的值.. 虽然它可能不推荐的方式
  • 你可以使用javascript获取文本,使用一个隐藏字段并将其值设置为选择框文本,然后提交页面

标签: php forms codeigniter post


【解决方案1】:
  1. 您可以自己进行选择,而不是使用 CI 助手。这样您就可以完全控制输出的内容和位置:

    <select name="pos" id="pos_select" class="form_input">
      <?php foreach($pos_options as $option):?>
        <option value="<?php echo htmlentities($option);?>"><?php echo $option;?></option>
      <?php endforeach;?>
    </select>
    
  2. 或者,你可以用javascript做一个丑陋的hack:

    $('#pos_select option').each(function(){
       $(this).attr('value', $(this).text()); 
    });
    

将每个选项的value 设置为等于其文本内容:http://jsfiddle.net/ursQY/

【讨论】:

    【解决方案2】:

    试试这个不要给选项标签赋值:

    <select name="pos" id="pos_select" class="form_input">
        <option>about_history_title</option>
        <option>about_history</option>
    </select>
    

    它将返回选项的文本。

    【讨论】:

    • 如果选择选项有来自数据库的记录怎么办?像 form_dropdown(),有什么想法吗?
    【解决方案3】:

    不,&lt;option&gt; 标签内的文本永远不会提交。这就是 HTML 的工作原理。

    您必须在value 属性中设置需要检索的值。这就是他们的目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 2015-09-21
      • 1970-01-01
      相关资源
      最近更新 更多