[eluser]Unknown[/eluser]
Hi. A little help here please?
I'm getting this error:
Code:
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: helpers/form_helper.php
Line Number: 331
And I think it's from my drop-down menu (form_dropdrown).
Here's my form_helper.php:
Code:
/**
* Drop-down Menu
*
* @access public
* @param string
* @param array
* @param string
* @param string
* @return string
*/
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 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;
}
}
In line with this, I noticed my dropdown menus not having any values. Here's the code which calls the form_dropdown: It's from one of my controllers.
Code:
public function new_project(){
(!isset($_SESSION['uid'])) ? session_start() : false;
$this->load->helper(array('date','url','html','form'));
$this->load->library('table');
$this->load->model('Utilities','util');
$this->data['uname'] = $_SESSION['uid'];
$this->data['fullname'] = $_SESSION['name'];
$this->data['email'] = $_SESSION['email'];
$this->data['date'] = date('l, F j, o',now());
$this->data['title'] = project_name;
$this->data['label'] = "Create A New Project";
$this->user = $_SESSION['uid'];
//$h_data = array('data'=>'<span class="header_text">Create A New Project</span>', 'colspan'=>'2');
//$this->table->add_row($h_data);
$refno = array('name'=>'REFNO', 'maxlength'=>'20','size'=>'20');
$this->table->add_row($this->util->set_label('Reference No. *'),form_input($refno));
$name = array('name'=>'NAME', 'maxlength'=>'100','size'=>'80');
$this->table->add_row($this->util->set_label('Project Name *'),form_input($name));
$description = array('name'=>'DESCRIPTION','cols'=>'100', 'rows'=>'2');
$this->table->add_row($this->util->set_label('Description'), form_textarea($description));
$team = array('name'=>$_SESSION['TEAM']);
$this->table->add_row($this->util->set_label('Assigned To'), form_dropdown('owner', $this->util->dropdrown_data('users', false, 'USERID','FULLNAME')));
$this->table->add_row($this->util->set_label('Status'), form_dropdown('STATUS', $this->config->item('project_status')));
$this->table->add_row($this->util->set_label('Development Type'), form_dropdown('dev_type', $this->config->item('development_type')));
$this->table->add_row($this->util->set_label('Business Area'), form_dropdown('business', $this->config->item('business_area')));
$deploy = array('name'=>'DEPLOYMENT_DATE', 'maxlength'=>'10','size'=>'15', 'readonly'=>'readonlyj');
$data = array('name' => 'button', 'class' => 'elipses', 'value' => 'true','content' => '...', 'onclick'=>"displayDatePicker('DEPLOYMENT_DATE', false, 'ymd', '-');");
$this->table->add_row($this->util->set_label('Deployment Date *'),form_input($deploy).spacer.form_button($data));
$promo = array('name'=>'PROMO_FLAG','value'=>1);
$this->table->add_row($this->util->set_label('Promo (Check if YES)'), form_checkbox($promo));
$this->table->add_row($this->util->set_label('Priority'), form_dropdown('priority', $this->config->item('priority')));
$this->table->add_row($this->util->set_label('Project Type'), form_dropdown('proj_type', $this->config->item('project_type')));
$system = array('name'=>'SYSTEM', 'maxlength'=>'100','size'=>'80');
$this->table->add_row($this->util->set_label('Systems Affected'),form_input($system));
$involvement = array('name'=>'INVOLVEMENT','cols'=>'100', 'rows'=>'1');
$this->table->add_row($this->util->set_label('Involvement'), form_textarea($involvement));
$remarks = array('name'=>'REMARKS','cols'=>'100', 'rows'=>'1');
$this->table->add_row($this->util->set_label('Remarks'), form_textarea($remarks));
$this->table->add_row('',array('data'=>'NOTE: Field marked with asterisk(*) is a required field.', 'class'=>'disclaimer'));
$this->table->add_row('');
$save = array('name'=>'save', 'class'=>'submit_but', 'value'=>'true', 'content'=>'Save Project','type'=>'submit');
$clear = array('name'=>'clear', 'class'=>'submit_but', 'value'=>'true', 'content'=>'Clear','type'=>'reset');
$this->table->add_row('',form_button($save).spacer.form_button($clear));
$this->data['disp'] = form_open('projects/save_project', array('name'=>'formNewProj'));
$validate[0] = array("refno", "req", "Reference No. is a required field");
$validate[1] = array("name", "req", "Project Name is a required field");
$validate[2] = array("deployment_date", "req", "Deployment Date is a required field");
$this->data['disp'] .= $this->table->generate();
$this->data['disp'] .= $this->util->validate_fields('formNewProj', $validate);
$this->load->view($this->view, $this->data);
}