2014-03-19 100 views
0

我试图做链接选择使用jquery链接,但codeigniter回声形式下拉不允许单独分配CLASS。Codeigniter表单扩展助手

我想为每个列表分配类似下面的例子。

<select name="hardware"> 
<option class="printer" value="" selected="selected"></option> 
<option class="printer" value="EPSON">EPSON</option> 
<option class="printer" value="HP">HP</option> 
<option class="hdd" value="WD">WD</option> 
<option class="hdd" value="SEAGATE">SEAGATE</option> 
</select> 

这里是笨形式下拉

查看网页:

<form action="" method=""> 
    $select = 'hardware'; 
    echo form_dropdown('hardware', $hardware,set_value('hardware',$this->input->post('hardware'))); ?> 
</form> 

我已经改变了选择的形式来此。

<select name="supplier"> 
<?php foreach($supplier as $row){ ?> 
<option value="<?php echo $row['supplier'];?>"><?php echo $row['supplier'];?> 
</option> 
<?php }?> 
</select> 

如何验证失败后返回选定的值?

回答

0

这不可能使用form_dropdown(),因为codeigniter不允许任何参数设置选项标签中类的“额外”属性。

检查此功能:这是核心功能form_dropdown():

function form_dropdown($name = '', $options = array(), $selected = array(), $extra = '') 
    { 
     if (! is_array($selected)) 
     { 
      $selected = array($selected); 
     } 

     // If no selected state was submitted we will attempt to set it automatically 
     if (count($selected) === 0) 
     { 
      // If the form name appears in the $_POST array we have a winner! 
      if (isset($_POST[$name])) 
      { 
       $selected = array($_POST[$name]); 
      } 
     } 

     if ($extra != '') $extra = ' '.$extra; 

     $multiple = (count($selected) > 1 && strpos($extra, 'multiple') === FALSE) ? ' multiple="multiple"' : ''; 

     $form = '<select name="'.$name.'"'.$extra.$multiple.">\n"; 

     foreach ($options as $key => $val) 
     { 
      $key = (string) $key; 

      if (is_array($val) && ! empty($val)) 
      { 
       $form .= '<optgroup label="'.$key.'">'."\n"; 

       foreach ($val as $optgroup_key => $optgroup_val) 
       { 
        $sel = (in_array($optgroup_key, $selected)) ? ' selected="selected"' : ''; 

        $form .= '<option value="'.$optgroup_key.'"'.$sel.'>'.(string) $optgroup_val."</option>\n"; 
       } 

       $form .= '</optgroup>'."\n"; 
      } 
      else 
      { 
       $sel = (in_array($key, $selected)) ? ' selected="selected"' : ''; 

       $form .= '<option value="'.$key.'"'.$sel.'>'.(string) $val."</option>\n"; 
      } 
     } 

     $form .= '</select>'; 

     return $form; 
    } 
+0

嗨Ananth,即将做的核心功能。 – WreckTangle

+0

你可以检查代码。所以通过这个核心功能,你可以知道发送可以添加到

0

你想做什么,你必须创建自己的帮助,请参阅“扩展助手”在这里的文档。我会做什么说,并复制一个“MY_helper.php”版本到您的应用程序文件夹;除非你真的需要,否则不要弄脏核心。

http://ellislab.com/codeigniter/user-guide/general/helpers.html

您可以使用值阵列,并设置在数组中的类项目(和改变在附近的辅助线327的foreach)或通过另一个阵列,并检查它在foreach。

+0

的参数是不可能的,它会像