Codeigniter Form Helper - How to add additional parameters to "select" control? -


i need modify site written in codeigniter i'm no expert.

one thing i'd modify select control in form use ms-dropdown drop-down list including pictures.

however, can't work out how make codeigniter form helper render parameters other id , value in each option. in case, make ms-dropdown work, need render data-image="..." in each option.

the current code looks like:

$dropdown = array( 'name'=>'mydropdown',  'options' => array('op1'=>'first option', 'op2' =>'second option') );  echo form_dropdown($dropdown['name'],$dropdown['options']); 

this renders as

<select name="mydropdown"> <option value='op1'>first option</option> <option value='op2'>second option</option> </select> 

is there way me make codeigniter render

<select name="mydropdown"> <option value='op1' data-image="filepath1">first option</option> <option value='op2'  data-image="filepath2">second option</option> </select> 

you can't. need extend ci's form helper , modify form_dropdown accept other attributes id's

you have extend helper .

to extend native form helper you'll create file named application/helpers/my_form_helper.php, , add or override functions:

if want override function form_dropdown

simply write function way want in my_form_helper.php

here base function

if ( ! function_exists('form_dropdown')) {     function form_dropdown($name = '', $options = array(), $selected = array(), $extra = '')     {         if ( ! is_array($selected))         {             $selected = array($selected);         }          // if no selected state submitted attempt set automatically         if (count($selected) === 0)         {             // if form name appears in $_post array have 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 $key => $val)         {             $key = (string) $key;              if (is_array($val) && ! empty($val))             {                 $form .= '<optgroup label="'.$key.'">'."\n";                  foreach ($val $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;     } } 

you have edit part ,

foreach ($options $key => $val) {     $key = (string) $key;      if (is_array($val) && ! empty($val))     {         $form .= '<optgroup label="'.$key.'">'."\n";          foreach ($val $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";     } } 

as can see , option's value attribute set function , can edit code , thing want ,

try , if not , tell me ll , first give try :)


Comments

Popular posts from this blog

design - Custom Styling Qt Quick Controls -

Unable to remove the www from url on https using .htaccess -