Web form generator PHP class - empty property on foreach

Da Boss

New Member
I am currently building PHP class that generates web form for flexibility and localization issues. I am having difficulty assigning a key and value for dropdown input; for some reason the foreach seems does not get array variable ($country_list). Here is my code that I am having difficulty.\[code\]require_once('_include/country_list.php');//drop down form classclass DropDown{ function __construct ($form, $field_label, $field_name, $field_desc, $dropdown_data, $locale){ $this->form = $form; $this->field_label = $field_label; $this->field_name = $field_name; $this->filed_desc = $filed_desc; $this->dropdown_data = http://stackoverflow.com/questions/2035145/$dropdown_data; $this->locale = $locale; } function getNotRequiredData(){ global $notReqArry; //http://stackoverflow.com/questions/1415577/accessing-variables-and-methods-outside-of-class-definitions return $notReqArry[$this->locale]; } function getValue(){ return $_POST[$this->field_name]; } function dropdown(){ $selecedVal = $this->getValue(); $select_start ="<select name=\"$this->field_name\"><option value=http://stackoverflow.com/questions/2035145//"\">$this->filed_desc</option>"; foreach ($this->dropdown_data as $key=>$value){ $selected = ($key == $selecedVal ? 'selected' : ''); $options = sprintf('<option value="http://stackoverflow.com/questions/2035145/%s" %s >%s</option>',$key,$selected,$value); print $options; } $select_end = "</select>"; return $select_start . $options . $select_end; } function getLabel(){ $non_req = $this->getNotRequiredData(); $req = in_array($this->field_name, $non_req) ? '' : '*'; return $this->field_label ? $req . $this->field_label : ''; } function __toString(){ $label = $this->getLabel(); $field = $this->dropdown(); return $label.$field; }}function generateForm ($lang,$country_list){ switch($lang) { case 'en-US': //create EN web form echo $textField = new TextField($form, 'Note', 'form_note', '2', '20', '250', 'en-US'); //echo $textField_js = new JsTextField($textField, 'onkeyup', 'return checklength(this,contact_max_warning)', 'Characters typed:'); echo $dropDown = new DropDown ($form, 'Country', 'form_country', '--Select Country--', $country_list, 'en-US'); break; case 'fr-FR': //create FR web form break; case 'de-DE': //create DE web form break; case 'ja-JP': //create JA web form break; default: //create default web form print('foooo'); };}<form id="frm_verification" action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST"> <? $lang='en-US'; echo generateForm ($lang,$country_list); ?><p> <input type="button" name="reset" value="http://stackoverflow.com/questions/2035145/Reset"> <input type="submit" name="submit" value="http://stackoverflow.com/questions/2035145/Submit"></p></form>\[/code\]and the array from country_list.php is like:\[code\]$country_main = array ( //Main 5 countries at first //Those 5 countries are direct market of my previous company. you can modify whatever you want. "US" => "United States", "UK" => "United Kingdom", "DE" => "Germany", "FR" => "France", "JP" => "Japan", );\[/code\]It does not work currently and I have check the error log, and it says:\[quote\] "PHP Fatal error: Cannot access empty property in..."\[/quote\]I am sure that this is from my misunderstanding of class and its var or foreach statement.Please help me to fix this; I really need help. (Yeah, I am really new on PHP)
 
Back
Top