在codeigniter中提交后从下拉列表中获取价值

时间:2014-01-09 19:44:46

标签: codeigniter drop-down-menu

我有一些大学的下拉列表,如果用户所在的大学不在列表中,他可以用输入框添加它。我的问题是,在用户单击提交按钮后,我无法从下拉列表中获取值。

我在视图中的代码是:

echo "University:";
?>
<div id="university2" style="display:block;">
<?php
echo form_dropdown('university2',$this->session->userdata('user'));
echo "&nbsp";
echo "<a href= javascript:ShowContentuni('university')>Other</a>";
?>
</div>
<div id="university" style="display:none;">
<?php
echo form_input('university',$this->input->post('university'));?>
</div>

我在控制器中的代码是:

    if(isset($_POST['university']))$university= $this->input->post['university'];
    else if(isset($_POST['university2']))$university=$this->input->post('university2');

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:0)

看起来有两个问题:

  • 总是用{university2'的帖子值覆盖$university的值,即使它是空的
  • 表单有两个名为university的输入,只有第二个输入被称为

快速解决方法是首先删除第二个“大学”表单元素,即删除它:

echo form_input('university',$this->input->post('university'));

然后检查用户是否已手动输入大学名称,如果是,则使用该名称。如果用户未输入大学名称,请使用下拉值。代码如下所示:

$universityFromDropdown = $this->input->post('university');
$universityFromManualInput = $this->input->post('university2');
$university = is_string($universityFromManualInput)
  && strlen($universityFromManualInput) > 1
  ? $universityFromManualInput : $universityFromDropdown;