我正在从上一页建立一个变量,如下所示:
$years = $_POST['years'];
其值为1或5。
稍后,我想使用这个值来确定一个不同的值,该值通过如下形式进入数据库:
<input type="hidden" name="years" value="<?php
if ($years == 1) {
echo '10';
}
else if ($years == 5) {
echo '50';
}
?>" />
我的问题是,当我提交表格时,原始变量"$years"的值正在更改为新的后值。
我应该换一种方式写这个吗?
已编辑
我能想到的一个解决方案是:
$prevent_year = false;
$years = $_POST['years'];
if(isset($_POST['prevent_years']) && $_POST['prevent_years'])
$prevent_years = $_POST['prevent_years'];
<input type="hidden" name="years" value="<?=($years==1?10:($years==5?50:""))?>" />
<input type="hidden" name="years" value="<?=$prevent_years?>" />
输入。。。为什么不
<input type="hidden" name="years" value="<?=($years==1?10:50)?>" />
我不知道我是否100%理解这个问题。。。但我希望它能帮助你。
有很多方法可以做到这一点。我建议您分离代码并删除"echo"函数,而是创建一个变量来保存"years"变量的新值。
<?php
$years = $_POST['years'];
if ($years == 1) {
$newYears = 10;
}
else if ($years == 5) {
$newYears = 50;
}
echo<<<_END
INPUT THE ADDITIONAL BEGINNING OF HTML FOR FORM HERE
_END;
echo <input type="hidden" name="years" value=$years>;
echo <input type="hidden" name="newYears" value=$newYears>;
echo<<<_END
INPUT THE ADDITIONAL -END OF HTML FOR FORM HERE
_END;
?>
只需在表单中添加另一个隐藏输入:
<input type="hidden" name="years" value="<?php
if ($years == 1) {
echo '10';
}
else if ($years == 5) {
echo '50';
}
?>" />
<input type="hidden" name="years-orig" value="<?php echo $years; ?>">
在表单提交页面上,您可以访问以下数据:
$_POST['years'];
$_POST['years-orig'];