Как реализовать передачу двух параметров ($id) на другую страницу?
<input type='checkbox' name='prod[]' value='$id' >
<input type='checkbox' name='prod[]' value='$id' >// Получаем массив элементов
$prod = $_POST['prod'];
// $prod - это массив со всеми отмеченными элементами
// Его можно обработать, например, так:
foreach ($prod as $item) {
     echo $item;
}
Если вам обязательно надо получить два поля, надо изменять обработку в JS
UPDATE: Source<?php
			if (!empty($_POST['prod'])) {
				// Получаем массив элементов
				$prod = $_POST['prod'];
				// $prod - это массив со всеми отмеченными элементами
				// Его можно обработать, например, так:
				echo 'Recieved: '.implode(', ', $prod).'<br />';
				
				exit();
			}
?>

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	</head>
	<body>
		<form method="post" action="" onsubmit="send(this); return false;">
			<input type='checkbox' name='prod[]' value='value1' /><br />
			<input type='checkbox' name='prod[]' value='value2' /><br />
			<input type='checkbox' name='prod[]' value='value3' /><br />
			<input type='checkbox' name='prod[]' value='value4' /><br />
			<br />
			<input type="submit" value="Отправить" />
		</form>
		
		<script src="http://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script>
		<script>
			function send (form) {
				var count = $(form).find(':checked').length;
				if (count == 2) {
					var prods = $(form).serialize();
					$.ajax({
						type: "POST",
						url: "toster.php",
						data: prods,
						success: function (html) { $("body").append(html); }
					}); 
				} else if (count > 2) {
					alert('Много выделено');
				} else {
					alert('Мало выделено');
				}
			}
		</script>
	</body>
</html>
Ну так у Вас все checkbox'ы с одинаковым id = 'prod', в этом и проблема.
Сделайте форму, в нее поместите checkbox'ы с разными именами и потом уже обрабатывайте форму ajax'ом.