2010-10-11 39 views
1

这工作...缅怀笨form_dropdown领域

form_dropdown('location', $location_options, $this->input->post('location')); 

但是当我尝试使用数组来增加额外的属性,它停止工作......这是为什么呢?

$attributes = array(
    'name' => 'location', 
    'id' => 'location' 
); 

form_dropdown($attributes, $location_options, $this->input->post('location')); 

下拉列表的名称包含属性的阵列中,所以我看不出这是任何不同的第一个例子。每当表单发布回来时,它都会重置为开始。

任何人都可以帮我解决这个问题吗? 谢谢

回答

1

这只是错误的语法。

请看看在实况:http://codeigniter.com/user_guide/helpers/form_helper.html

form_dropdown('location', $location_options, $this->input->post('location'), "id='location'"); 

你的代码应该看起来像上面。顺便说一句:如果你使用form_validation库,你可以使用SET_VALUE而不是$这个 - >输入 - >后...

+0

好吧,看起来像错误的语法...不解释如何传递一个属性数组,并仍然保留在“form_input”字段的值,但不能做一样的“ form_dropdown“字段而不会丢失发布数据。 – Quigley 2010-10-11 03:52:08

+0

您将您的属性作为字符串添加为form_dropdown()的最后一个参数。 – mseo 2010-10-11 11:35:56

+2

重要提示:为了在使用表单验证库时工作,set_value()必须是验证规则的一部分。 – 2011-12-09 00:04:55

0
$attributes = ' id="bar" class="foo" onChange="some_function();"'; 
    $location_options = array(
     'IN' =>'India', 
     'US' =>'America' 
    ); 

form_dropdown('location', $location_options, $this->input->post('location'),$attributes); 

参数:

  1. 1 PARAM会分配给字段的名称,
  2. 第二会得到你的选择,
  3. 第三是默认值,
  4. 第四届一个是额外的属性添加像JavaScript函数,身份证,类...