|
|
|
Problem: Certain form fields should be required, but we don't want to
hard-code these in as an array. We want to pull the required field names
from a database so our code is more extensible. Then, we want to check each
form field submitted, see if it is required, and if so, generate an error
message if that required field is blank.
Solution: There are several parts to the solution. First of all, create a
database table with all of the form field names, and whether or not they
are required. (I went further and created type of form field, default
value, etc. so I could generate the entire form from a database.) Here's a
basic table with what you need:
field_name required
fname yes
lname yes
wphone no
Next, create your form with ALL form field names being an array. For this
example, I use the array add[]. A sample form field pulled from a database
would look like this:
<input type=\"text\" name=\"add[$field_name]\"
size=\"$size\" value=\"$default_value\">
Here is the code that parses the form and checks for required fields:
# check to make sure required fields are filled in
$query = "select field_name from form_fields where
required=\"yes\"";
$result = mysql_query ($query) or die ("The server is down. Here's
what
MySQL said: " . mysql_error());
$required_fields = array();
while ($row = mysql_fetch_array ($result)) {
$field_name = $row['field_name'];
array_push ($required_fields, $field_name);
};
while(list($key,$val) = each($required_fields)) {
if (!strlen($add[$val])) {
$errors[$key] = "$val is a required field.";
# above line will store the form field name,
e.g. "fname is a required
field."
};
}; # END WHILE
if(is_array($errors)) {
while(list($key,$val) = each($errors)) {
print "Error! $val <br>";
# for every field that is blank, above line
will print "Error:
$field_name is a required field."
# this part can be easily customized.
};
}
else {
# here's where you put the "success" message, add
entries to database, etc.
};
I hope this helps those of you who want to make your forms extensible. I
owe most of this to the PHP mailing list! You guys ROCK!
Erica
|
|
| Message of the Day - Random Message (Needs MySQL!) Categories : Databases, HTML and PHP, PHP, MySQL | | | Alternating background color for HTML table rows Categories : PHP, Databases, MySQL, HTML and PHP | | | Automatically printing the contents of an sql table in MySQL. Categories : MySQL, PHP, HTML and PHP, Databases | | | A very simple way to build and do a hierarchical html categories browser without javascript , just using html php and mySql
Categories : HTML and PHP, Databases, Algorithms, PHP, MySQL | | | Pull Down Surfing - Surf on Change Categories : Java Script, MySQL, HTML and PHP, PHP, Databases | | | Dynamically generated pop-ups (Select items) Categories : PHP, HTML and PHP, MySQL, Databases | | | Creating thumbnails from MySQL Blobs online Categories : PHP, MySQL, Graphics, HTML and PHP, Databases | | | Record Set Paging with PHP (RSP) Categories : PHP, MySQL, Navigation, Databases, HTML and PHP | | | Functions for loading images into a MySQL database and displaying them. Categories : Graphics, HTML and PHP, MySQL, PHP, Databases | | | dynamic table columns Categories : PHP, HTML and PHP, Arrays, Databases, MySQL | | | Editing the virtusertable and sendmail.cw via PHP3.0 and Mysql Categories : MySQL, HTML and PHP, PHP, Databases | | | This function will populate the options in a drop down HTML select list
in a form from a database query.
Categories : MySQL, General SQL, PHP, HTML and PHP, Databases | | | How can i Preload a 'SELECT MULTIPLE'? Categories : HTML and PHP, PHP, MySQL, Databases | | | Paginating the mySQL data Categories : PHP, Algorithms, Databases, MySQL, HTML and PHP | | | PHP and MySQL scripting for Muyltiple CheckBoxes Categories : HTML and PHP, MySQL, Databases, PHP | |
|
|
|