【问题标题】:How to send a form value from a javascript variable and be received as an integer in php? [duplicate]如何从 javascript 变量发送表单值并在 php 中作为整数接收? [复制]
【发布时间】: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 变量?将其正确转换为整数。

感谢您的时间和建议。

【问题讨论】:

    标签: javascript php html


    【解决方案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 完全相同,对吧?
    • 是的,不是的,我需要做的部分是来自那个答案,但我不知道如何让它发挥作用。我认为问题更多是我忽略的结构缺陷,这是我的不工作的主要因素。我在发这篇文章之前就看过那篇文章,因为我不知道如何放置它。
    猜你喜欢
    • 2019-05-14
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2013-07-19
    相关资源
    最近更新 更多