从表单处理数据,处理并返回到相同的表单

时间:2011-10-08 13:38:39

标签: php

我知道我没有任何警告或审查。这将被添加:D

我目前有一个php表单,它要求提供以下信息:

  • 平均。薪水
  • 员工人数
  • 养老金升值PCT
  • Pension Contributuin PCT

然后提交,并由名为SSESC.php的文件处理(代码将在下面)。

然后它应该将计算数据返回到字段Total Employee贡献($TEC)和总储蓄($NISAVING

我可以将数据传递给SSEC.php文件,并对其进行处理(由echo测试),但我无法将数据恢复并显示在表单上。

我尝试将数据保存到会话中,然后返回并重新填充表单。我使用<?php header ("location: form.php");?>从脚本返回。这是有效的,但表格没有填写。我将从表格中包含下面的片段。

SSESC.php代码

<?php header ("location: form.php");?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org    TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SSEC-Process</title>
</head>
<?php
setlocale(LC_MONETARY, 'en_GB');
$Average_Salary = $_POST["Average_Salary"];
$EMPNUM = $_POST["EMPNUM"];
$PUPCT = $_POST["PUPCT"];
$PCPCT = $_POST["PCPCT"];
$TEC = "";
$NI_save = "";

$employeepension = $PCPCT/100;
$pensionuptake = $PUPCT/100;

$TEC = $Average_Salary*$employeepension*$EMPNUM*$pensionuptake;
$combi = $TEC*13.8/100;

$NI_save =  money_format('%.0i', $combi);

$_SESSION["TEC"] = money_format('%.0i',$TEC);
$_SESSION["NISAVE"] = $NI_save;

?>

<body>
</body>
</html>

表格摘要

<input id="TEC" name="TEC" class="Label" type="text" maxlength="255" value="<?=  $_SESSION['TEC']?>"/> 


<input id="NI_save" name="NI_save" class="label" type="text" maxlength="255" value="<?=$_SESSION['NISAVE']?>"/>

提前致谢。 史蒂夫。

3 个答案:

答案 0 :(得分:1)

我建议编写标准标记(<?php echo),因为并不总是启用短标记。所以你必须写:

value="<?php echo $_SESSION['TEC']?>"

您是否在此声明之前致电session_start

首先尝试此操作,然后执行var_dump测试值是否设置正确。

答案 1 :(得分:1)

尝试使用以下方法修改表单:

<input id="TEC" name="TEC" class="Label" type="text" maxlength="255" value="<?php echo  $_SESSION['TEC']?>"/> 


<input id="NI_save" name="NI_save" class="label" type="text" maxlength="255" value="<?php echo $_SESSION['NISAVE']?>"/>

答案 2 :(得分:1)

  1. 您没有启动会话处理程序。你应该有 session_start();位于两个脚本之上。 (在这个脚本和form.php中都在右边)
  2. 如果您没有显示任何内容,为什么要输出HTML,并且仍然会重定向到另一个文件?
  3. 删除处理脚本上不必要的HTML,并将header()调用移至处理脚本的底部。