如何从 javascript 变量发送表单值并在 php 中作为整数接收? [复制]

Posted

技术标签:

【中文标题】如何从 javascript 变量发送表单值并在 php 中作为整数接收? [复制]【英文标题】:How to send a form value from a javascript variable and be received as an integer in php? [duplicate] 【发布时间】:2017-09-10 13:30:01 【问题描述】:

我的表单会将数据发布到名为 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;

输出 = 5 on actionNumberPage


所以,重申一下我的问题:我需要一种方法让我的表单中输入元素的value="5" 部分接收javascript 变量number 的值。寻找诸如:

value="&lt;script&gt;retrieveNumber()&lt;/script&gt;"

另外,我是否正确准备了$_POST 变量?将其正确转换为整数。

感谢您的时间和建议。

【问题讨论】:

【参考方案1】:

您要做的是更新名为 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;

【讨论】:

@Jamin 原来你的问题与Set the value of a input field with javascript 完全相同,对吧? 是的,不是的,我需要做的部分是来自那个答案,但我不知道如何让它发挥作用。我认为问题更多是我忽略的结构缺陷,这是我的不工作的主要因素。我在发这篇文章之前就看过那篇文章,因为我不知道如何放置它。

以上是关于如何从 javascript 变量发送表单值并在 php 中作为整数接收? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

从 HTML 表单发布值并在 Flask 视图中访问它们

如何从 TempTable 中检索值并在局部变量中设置该值

使用 PHP 从动态输入字段中捕获数组值并通过电子邮件发送它们

Vue中如何存储多个children的值并在父组件中执行一个函数

从数据库中获取值并在 Laravel 中单击按钮时以表单形式显示它

如何从javascript发送具有2个值的表单?