Scripts

Formulier velden vergeten

Dit is een handige functie die je kunt gebruiken voor een simpel formulier. Hij kijkt alleen of hij wel of niet is ingevuld. Er werd mij vaak gevraagd om een formulier te bouwen en vond het dan lastig om steeds alles in de 'if' regel te schrijven. Ook omdat ik het wel netjes vind dat een veld rood wordt omlijnd wanneer deze niet is ingevuld, heb ik deze functie geschreven. Er zijn ook diverse andere form handlers die op OOP basis werken, maar voor snel en makkelijk gebruik is dit aan te raden!

formulier-velden-vergeten
[code]<html>
<head>
<title>Velden vergeten</title>
<style type="text/css">
.forgotten {
	border: 1px solid #ff0000;
}
</style>
</head>
<body>
<?php
	//----- function to check required fields
	function CheckRequired($array)
	{
		//----- check if $array is not empty
		if (!empty($array))
		{
			//----- loop through the array and check if the value's been set
			foreach ($array as $value)
			{
				if (empty($_POST[$value]))
					$form_error[] = $value;
			}
		}
		
		//--- return an array with missed fields
		return $form_error;
	}
	
	//----- check for required fields
	if ($_SERVER['REQUEST_METHOD'] == 'POST')
		$required_fields = CheckRequired(array('name', 'email', 'message'));

	//----- check if all required fields are entered
	if ($_SERVER['REQUEST_METHOD'] == 'POST' && empty($required_fields))
	{
		echo 'Verwerk formulier';
	}
	else
	{
		//----- if form's been posted before, there are some fields left undone
		if (!empty($required_fields))
		{
			$i = 1;
			foreach ($required_fields as $value)
			{
				// echo 'U forgot the field: ' . ucfirst($value) . '.<br />';
				$varname = 'class_' . $value;
				${$varname} = 'class=forgotten';
					
				$i++;
			}
		}
		
		//----- start form
		echo "<form method=\"POST\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
		echo "<p>";
		echo "<input type=\"text\" name=\"name\" value=\"" . htmlentities($_POST['name']) . "\" " . $class_name . " /> Name<br />";
		echo "<input type=\"text\" name=\"email\" value=\"" . htmlentities($_POST['email']) . "\" " . $class_email . " /> E-mail adres<br />";
		echo "<textarea name=\"message\" rows=\"8\" cols=\"\" style=\"width: 400px\" " . $class_message . ">" . htmlentities($_POST['message']) . "</textarea><br />";
		echo "<input type=\"submit\" name=\"submit\" value=\" Versturen \" />";
		echo "</p>";
		echo "</form>";
	}
?>
</body>
</html>[/code]

Reacties

0
Nog geen reacties.