![](/img/trans.png)
[英]How to get the option value of the select box in the controller in CodeIgniter
[英]How I get the text instead value from a select option in CodeIgniter
我有一个表单,其中有一个带有许多选项的选择字段。 这些选项在选项标签之间具有数值和文本。 我想做的是通过“提交”按钮发布表单时获取文本而不是值。
生成选择字段的视图:
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>
提交表单后,将通过controller(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?
不, <option>
标记内的文本永远不会提交。 这就是HTML的工作方式。
您必须在value
属性中设置需要检索的value
。 那就是他们的目的。
尝试执行此操作,不要将值分配给选项标签:
<select name="pos" id="pos_select" class="form_input">
<option>about_history_title</option>
<option>about_history</option>
</select>
它将返回选项文本。
您可以自己选择,而不使用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>
或者 ,您可以使用JavaScript进行丑陋的修改:
$('#pos_select option').each(function(){ $(this).attr('value', $(this).text()); });
它将每个选项的value
设置为等于其文本内容: http : //jsfiddle.net/ursQY/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.