我的表单将数据发布到名为numberActionPage.php的php。我想要发布的变量周围有两个按钮(一个+
和一个-
),它们只是通过添加或减去一个变量来更改变量。我遇到的问题是我找不到一种方法来检索我的Javascript number
变量的值。我注意到的另一个潜在问题是$_POST
在PHP中导致string
。但是,我并不关心将负数发布到操作页面,因为实际程序中的数字永远不会低于1.
例如,我的Javascript看起来像这样:
var number = 5;
function subtractNumber() {
number--;
document.getElementById("numberID").innerHTML = number;
}
function addNumber() {
number++;
document.getElementById("numberID").innerHTML = number;
}
我的HTML看起来像这样:
<form action="numberActionPage.php" method="post">
Number:
<button type="button" onclick="subtractNumber()">-</button>
<a id="numberID"> <input type="hidden" value="5" name="number"> <script>document.write(number);</script> </a>
<button type="button" onclick="addNumber()">+</button>
<br>
<p><input type="submit" value="Submit" /></p>
</form>
我的numberActionPage如下所示:
$number = (int)htmlspecialchars($_POST['number']);
echo $number;
在actionNumberPage上输出= 5
所以,重申一下我的问题:我需要一种方法让我的表单中输入元素的value="5"
部分接收javascript变量number
的值。寻找诸如以下的东西:
value="<script>retrieveNumber()</script>"
另外,我是否正确准备了$_POST
变量;正确地把它变成一个整数。
感谢您的时间和建议。
答案 0 :(得分:2)
您要做的是更新名为number的隐藏输入并更改其值。这样当提交时,输入的值将被发送到下一页,就好像它是正常输入一样。我给输入的id为'inputNumber'
喜欢这样
<form action="numberActionPage.php" method="post">
Number:
<button type="button" onclick="subtractNumber()">-</button>
<a id="numberID"> <input type="hidden" id="inputNumber" value="5" name="number"> <script>document.write(number);</script> </a>
<button type="button" onclick="addNumber()">+</button>
<br>
<p><input type="submit" value="Submit" /></p>
</form>
更改脚本,以便在按下按钮时更新输入值。
function subtractNumber() {
number--;
document.getElementById("numberID").innerHTML = number;
document.getElementById("inputNumber").value = number;
}
function addNumber() {
number++;
document.getElementById("numberID").innerHTML = number;
document.getElementById("inputNumber").value = number;
}