When making forms ever had the urge to find something easier than having to define every value in your JavaScript? I did and found something nice called serialize. What is does is add all values into 1 string. Because I began to like serialize I’m writing an article on the use of it.

Lately I see a lot of people writing their own functions to deserialize it in php not knowing that php has it’s own function for deserializing namely ‘parse_str’. What it does is get the values and put them into an array so you can access them individually. Here is a little code for example:

This is the Template

<script type="text/javascript">
	function refresh(data) {
		$('#result').html(data);
	}
	$(document).ready(function(){
		$("#search").click(function(){
			var search = $("#searchform").serialize();
			var url = 'search.php';
			$.post(url, search, refresh, "html");
		});
	});
</script>
<form id="searchform">
	<table>
		<tbody>
		<tr>
			<td>Name:</td>
			<td><input type="text" name="name" size="30" /></td>
		</tr>
		<tr>
			<td>Surname:</td>
			<td><input type="text" name="surname" size="30" /></td>
		</tr>
		<tr>
			<td>E-mail address:</td>
			<td><input type="text" name="email" size="30" /></td>
		</tr>
		</tbody>
	</table>
	<input id="search" type="button" value="Search" />
</form>

This is the php handler (search.php)

//Unserialize string to array
$searchserialized = $_POST['search'];

parse_str($searchserialized, $searcharray);

$name = $searcharray['name'];
$surname = $searcharray['surname'];
$email = $searcharray['email'];

echo $name.'-'.$surname.'-'.$email;

Man it’s so easy to use serialize