$ _POST数据操作'延迟'

时间:2014-12-10 13:02:55

标签: php post

我正在使用$_POST将数据发布回字段,然后再次操作它。但是功能并不是我想要的。

// Default to current date
if(!isset($_POST['inputText3'])) {
    $input = '2014';
} else {
    // grab input
    $input = $_POST['inputText3'];
}

// manipulation to run each time
$input = $input + 1;

if(isset($_POST['year1']) || isset($_POST['year2'])) {

    // Do more complex stuff - but simplified (duplicated) below for this example
    echo '<form method="post" action="">';
    echo '<button type="submit" name="year1" value="2016" class="button">2016</button>';
    echo '<button type="submit" name="year2" value="2017" class="button">2017</button>';
    echo '<input type="text" name="inputText3" value="' . $input . '">';
    echo '</form>';
} else {

    echo '<form method="post" action="">';
    echo '<button type="submit" name="year1" value="2016" class="button">2016</button>';
    echo '<button type="submit" name="year2" value="2017" class="button">2017</button>';
    echo '<input type="text" name="inputText3" value="' . $input . '">';
    echo '</form>';
}

最初在第一页加载时,我的函数从input3(2014)中获取初始值,操纵它(+1)然后将其输出回输入字段(2015)。这就是我想要的。

接下来我想要发生的是,当点击按钮(由PHP生成)时,再次执行相同操作。

相反,在点击按钮时,页面会重新加载并从input3(2014)中获取原始值 - 尽管在{{1}中可以看到操纵值(2015) }}

这意味着我的页面有点击延迟&#39;。 我认为问题是使用下面的代码不正确:

input3

会话是一种选择吗?发布到同一页面时可以使用它们吗?

2 个答案:

答案 0 :(得分:1)

现在重新阅读你的问题,让你更清楚;试试这个 -

<?php 

$input = (isset($_POST['lastYear'])) ? "$_POST[lastYear]" : '2014';

if (isset($_POST['year']) AND $_POST['year'] == 1) {
$input++;
} elseif (isset($_POST['year']) AND $_POST['year'] == 2) {
$input += 2;
}   

echo $input;
?>

<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
<input type="radio" name="year" value="1"> - Add 1 year<Br>
<input type="radio" name="year" value="2"> - Add 2 years<Br>
<input type="hidden" value="<?php echo $input ?>" name="lastYear">
<input type="submit" name="submit">
</form>

编辑:哎呀有2013而不是2014:)

答案 1 :(得分:0)

=我认为这是问题..应该有==

您通过分配=来给予价值。

如果您要比较(三元运算符),则应使用==

 $cur_year= 2014;
 if(!isset($_POST['inputText3'])) {
        $input = ($cur_year=='2014')?$_POST['inputText3'] :'2014';
    } else {
        //get posts date
        $input == isset($_POST['inputText3']) ?$_POST['inputText3'] :'';
    }