发布php时变量值变化

时间:2016-05-09 22:22:03

标签: php variables post

我正在建立一个来自前一页的变量,如下所示:

$years = $_POST['years'];

这个值是1或5。

稍后我想使用这个值来确定一个不同的值,它通过如下形式传递给数据库:

<input type="hidden" name="years" value="<?php 
    if ($years == 1) {
        echo '10';
    }
    else if ($years == 5) {
        echo '50';
    }
    ?>" />

我的问题是,当我提交表单时,原始变量“$ years”的值将更改为新的帖子值。

我应该用另一种方式写作吗?

3 个答案:

答案 0 :(得分:1)

<强> EDITED

我能想到的一个解决方案是:

$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%理解这个问题...但我希望它可以帮助你。

答案 1 :(得分:0)

有很多方法可以做到这一点。我建议你单独编写代码并删除“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;
?>

答案 2 :(得分:0)

只需在表单中添加另一个隐藏的输入:

$_POST['years'];
$_POST['years-orig'];
在表单提交页面上,您可以访问数据,如下所示:

Uncaught ReferenceError: $ is not defined