Welcome Guest, Not a member yet? Register   Sign In
Invalid argument for foreach() in form_helper.php
#1

[eluser]Unknown[/eluser]
Hi. A little help here please? Smile
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);
}




Theme © iAndrew 2016 - Forum software by © MyBB