我有一个表单,我将要计算的值发送到另一个PHP页面,该页面应该进行计算并将值返回到此表单页面。如果出现错误,则应将错误返回到此主页面。我该怎么做?
这是基本表单页面:index.php:
<form id="deps" name="deps" action="calc.php" method="POST">
<div id="er"> <span class="er" > </span></div>
<table class="table">
<tr>
<td class="field head"> </td>
<td class="field cv"><label for="met">Metric</label></td>
</tr>
<tr>
<td class="field head"><label for="bd">Bore Dia.</label></td>
<td class="field"><input type="text" name="bdmm" id="bdmm" /><label for="bdmm">MM</label></td>
<tr>
<td class="field head"><label for="tw">Total Weight</label></td>
<td class="field"><input type="text" name="twkg" id="twkg" /> <label for="twkg">KG</label></td>
</tr>
</tr>
</table>
<input type="submit" id="submit" value="Calculate" />
</form>
</div>
Calc.php
<?php
$bdmm = $_POST['bdmm'];
if(!$bdmm){
$error = "Please enter a value!";
echo $error;
}
else {
echo $bdmm ." success";
}
?>
如果出现错误,则应在span
标记中显示错误。如果没有错误并且计算出来,它应该返回结果并将其显示在textbox
中。
没有Javascript可以实现吗?
答案 0 :(得分:2)
当然:
index.php:
<?php
$err = (isset($_GET['error'])) ? $_GET['error'] : ' ';
?>
<form id="deps" name="deps" action="calc.php" method="POST">
<div id="er"> <span class="er" ><?php echo $err; ?></span></div>
....rest of form
<强> calc.php:强>
if(empty($_POST['bdmm'])){
header('Location: index.php?error=Please enter a value!');
exit();
}
else {
echo $_POST['bdmm'] ." success";
}
虽然这很好用,但我建议您只需将表单发布到同一页面并避免网址重定向。如果使用CodeIgniter或Zend等MVC框架,则可以利用同一文件中的唯一URL,并告诉控制器加载适当的视图,同时将请求保留在同一文件中。