See it in action here: click
<?
// include database functions
//$db = db_connect();
// first we define all the elements as a multi-dimensional array
// we define what each elements type is (select,text,textarea)
// and what it's additional parameters are (size,style,class,onclick,etc...)
$elements = array(
"salutation"=>array(
"type"=>"select",
// attributes are an associative array
"attributes"=>array(
"mr"=>"Mr.",
"ms"=>"Ms.",
"miss"=>"Miss.",
"mrs"=>"Mrs.",
),
),
"first_name"=>array(
"type"=>"text",
"size"=>40,
"required"=>true,
"onclick"=>"alert('test');",
"style"=>"border:2px solid #CCCCCC; padding:4px; font-size:15px;",
),
"last_name"=>array(
"type"=>"text",
"size"=>70,
"required"=>true,
),
);
$errors=array();
if($_REQUEST['save']){
// do sql here...
$sql = "INSERT INTO foo SET insert_date=NOW()";
foreach($elements as $element_name => $el){
if($el['required']&&!$_REQUEST[$element_name]){
$errors[]="Required field missing: $element_name";
}else{
$sql .= ", `$element_name` = '".addslashes($_REQUEST[$element_name])."'";
}
}
if(!$errors){
// call sql:
// $res = query($sql,$db);
// $member_id= mysql_insert_id($db);
// redirect after post back
header("Location: example.php?member_id=$member_id");
exit;
}
}
global $elements;
function fb($elem){
global $elements;
$el = $elements[$elem];
if(!$el['name'])$el['name']=$elem;
if(!$el['value']&&$_REQUEST[$el['name']])$el['value']=$_REQUEST[$el['name']];
switch($el['type']){
case "textarea":
?>
<textarea <? foreach($el as $key=>$val){ if($key=="value")continue; ?> <?=$key;?>="<?=$val;?>" <? } ?>><?=$el['value'];?></textarea>
<?
break;
case "text":
?>
<input <? foreach($el as $key=>$val){ ?> <?=$key;?>="<?=$val;?>" <? } ?>>
<?
break;
case "select":
?>
<select <? foreach($el as $key=>$val){ if($key=="attributes")continue; ?> <?=$key;?>="<?=$val;?>" <? } ?>>
<option value="">- select -</option>
<? foreach ($el['attributes'] as $key=>$val) {
?>
<option value="<?=$key;?>" <? if($el['value']==$key){ ?> selected <? } ?>><?=$val;?></option>
<?
}
?>
</select>
<?
break;
}
return "";
}
if($errors){
?>
<div class="errors">
<ul>
<? foreach($errors as $e){ ?>
<li><?=$e;?></li>
<? } ?>
</ul>
</div>
<?
}
?>
<form action="?save=true" method="post">
Salutation: <?=fb("salutation");?> <br>
First Name: <?=fb("first_name");?> <br>
Last Name: <?=fb("last_name");?> <br>
<br><br>
First name and last name are required fields. Try clicking save without filling them in.
<br><br>
<input type="submit" name="save_form" value="Save">
</form>
<br>
<a href="example2.php">View code</a>