так как все-таки лучше: полным php прописывать или разрывая html вставками?
Для удобства чтения и поиска ошибок лучше первое, нет?
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
$('#form_order').bind('submit', function(event) {
var count = 0;
$('[type=text]').each(function() {
if($(this).val().length) {
count++;
}
});
if (count == 0){
event.preventDefault();
alert('Хотя бы одно поле для ввода должно содержать значение!');
}
});
});
</script>
<form id="form_order" action="progressor.php" method="post">
<table border="0">
<tr bgcolor="#cccccc">
<td width=150>Наименование</td>
<td width="15">Количество</td>
</tr>
<tr>
<td>Диски</td>
<td align="center"><input type="text" name="disks" size="3" maxlength="3"></td>
</tr>
<tr>
<td>Шины</td>
<td align="center"><input type="text" name="bus" size="3" maxlength="3"></td>
</tr>
<tr>
<td>Двери</td>
<td align="center"><input type="text" name="doors" size="3" maxlength="3"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Отправить заказ"></td>
</tr>
</table>
</form>
</body>
</html>
<?php
define ("DISKS_PRICE", 100); /* константы (неизменяющееся значение) принято записывать прописными буквами */
define ("BUS_PRICE", 10);
define ("DOORS_PRICE", 4);
$errors = 0;
$sum = 0;
foreach($_POST as $key => $val){
if(empty($val)){
$errors++;
} else{
switch($key):
case 'disks':
$_POST[$key] = (float)$val * DISKS_PRICE;
break;
case 'bus':
$_POST[$key] = (float)$val * BUS_PRICE;
break;
case 'doors':
$_POST[$key] = (float)$val * DOORS_PRICE;
break;
endswitch;
$sum += $_POST[$key];
}
}
if($errors == count($_POST)) die('Данные не были введены'); // тут можно поставить редир на пред.стр.
$sum = number_format ($sum, 2);
echo "<br>\n";