2011-10-31 176 views
0

我有一个表单,我将要计算的值发送给另一个PHP页面,该页面应执行计算并将值返回给此表单页面。如果有错误,它应该将错误返回到这个主页面。我会怎么做?将结果值从一个PHP页面传递到另一个页面

这是基本的表单页面:index.php文件:

<form id="deps" name="deps" action="calc.php" method="POST"> 
       <div id="er"> <span class="er" >&nbsp;</span></div>   
       <table class="table"> 
        <tr> 
         <td class="field head">&nbsp;</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?

回答

2

肯定的:

的index.php:

<?php 
    $err = (isset($_GET['error'])) ? $_GET['error'] : '&nbsp;'; 
?> 
<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"; 
} 

虽然这工作得很好,我建议你简单地发布形成相同的页面并避免url重定向。如果您使用CodeIgniter或Zend等MVC框架,则可以利用同一文件中的独特URL并告诉控制器加载相应的视图,同时将请求保留在同一文件中。

+0

谢谢。虽然这工作得很好,但我不想在url中显示:'?error =请输入一个值!'。无论如何要这样做?其次,我假设这不会没有url重定向,除非我发布表单到你说的同一页面? – input

+1

正确,你不能通过'POST'重定向,所以它将需要在URI中,除非你发布到同一页面。 – AlienWebguy

相关问题