output. It would then call $this->write_form_variables() to auto populate any found forms. */ private function set_form_field_value($form,$field,$value) { $this->form_data[$form] = !isset($this->form_data[$form]) ? array() : $this->form_data[$form]; $this->form_data[$form][$field] = $value; } private function write_form_variables() { if(sizeof($this->form_data) == 0 || !preg_match_all('//is',$this->output,$forms)) : return false; endif; foreach($forms[0] as $form) : $new_form = $form; eregi('name="([a-zA-Z0-9]+)"',$form,$name); $form_data = !isset($this->form_data[$name[1]]) ? array() : $this->form_data[$name[1]]; preg_match_all('/<(input|textarea|select).*?name="(.*?)".*?>/',$form,$fields); for($i=0;$i'),array('',' value="'.$field_value.'">'),$field_def); $new_form = str_replace($field_def,$new_field_def,$new_form); break; case 'checkbox' : case 'radio' : $new_field_def = str_replace(array(' checked="checked','value="'.$field_value.'"'),array('','value="'.$field_value.'" checked="checked"'),$field_def); $new_form = str_replace($field_def,$new_field_def,$new_form); break; endswitch; break; case 'textarea': $new_form = str_replace($field_def.'',$field_def.$field_value.'',$new_form); break; case 'select' : if(!preg_match('/'.$field_def.'(.*?)<\/select>/is',$new_form,$field_def)) : continue; endif; $field_def = $field_def[0]; $new_field_def = str_replace(array(' selected="selected"','value="'.$field_value.'"'),array('','value="'.$field_value.'" selected="selected"'),$field_def); $new_form = str_replace($field_def,$new_field_def,$new_form); break; endswitch; endfor; $this->output = str_replace($form,$new_form,$this->output); endforeach; } } ?>