webForumDet fria alternativet

Form Creator -En enkel helper class för form validering

PHP

0 svar · 11 358 visningar · startad av Nate.A

Medlem sedan mars 2006296 inlägg
Frågan#1

Hej wF!

Har satt ihop en enkel class för formulärhantering. Fungerar bra till ex. kontaktformulär där man använder regex eller php filter för validering.

Hoppas det kan vara till nytta för någon :)

Ex. på enkelt kontaktformulär

<?php

	include('form_creator.class.php');
	
	
	$form = new form_creator('kontaktform');

	// lägg till input fält
	$form->add_element('namn',
		array(
			'required'	=> true,
			'type'		=> 'input',
			'class' 	=> 'input',
			'label'		=> 'Namn *',
			'validation'=> array('regex'=>'/.{2,}/','msg'=>'Du måste ange Namn')
		)
	);

	// lägg till input fält
	$form->add_element('epost',
		array(
			'required' 	=> true,
			'type' 		=> 'input',
			'class' 	=> 'input',
			'label' 	=> 'E-post *',
			'validation'=> array('filter'=>'email','msg'=>'Du måste ange en giltig E-post adress.')
		)
	);

	// lägg till textarea
	$form->add_element('meddelande',
		array(
			'required' => true,
			'validation' => array('regex'=>'/.+/','msg'=>'Du måste fylla i ett meddelande'),
			'type' => 'textarea',
			'label' => 'Meddelande'
			)
	);

	// Kontrollera om post data finns och validera dem
	if($form->get_values() && $form->validate()) :

		// hämta en assoc array med el. label som key
		$data = $form->get_results('label');

		var_dump($data);
		
	else:

	// skriv ut felmeddelanden om det finns några.
	if($form->has_errors()) { echo $form->get_errors('<ul class="errors">','</ul>', '<li>','</li>'); }

	// rendera formulär
?>
<form method="post" action="" name="kontaktform" class="box">
	<div class="row">
		<?php $form->get_label('namn'); ?>
		<?php $form->get_element('namn'); ?>
	</div>
	<div class="row">
		<?php $form->get_label('epost'); ?>
		<?php $form->get_element('epost'); ?>
	</div>
	<div class="row">
		<?php $form->get_label('meddelande'); ?>
		<?php $form->get_element('meddelande'); ?>
	</div>	
	<div class="row">
		<input type="submit" name="submit" value="Skicka">
	</div>
</form>
<?php endif; ?>
278 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
146 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)