我正在使用$_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
会话是一种选择吗?发布到同一页面时可以使用它们吗?
答案 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'] :'';
}