【问题标题】:How Do I Pass Javascript Variables Into MYSQL Using PHP?如何使用 PHP 将 Javascript 变量传递到 MYSQL?
【发布时间】:2021-01-27 06:12:59
【问题描述】:

我正在尝试将我的变量发送到 mysql 数据库,但数据库仅使用 HTML 输入标记显示变量。

结果显示“未定义的索引:比率和数量”

请求解决。

谢谢

<?php
        if(isset($_POST['send'])){
            $dayhour = $_POST['dayhour'];
            $wagetype = $_POST['wagetype'];
            $rate = $_POST['rate'];
            $amount = $_POST['amount'];

            $query = "INSERT INTO `result` ( `DaynHour`, `Wagetype`, `Rate`, `Amount`) VALUES ('$dayhour','$wagetype' , '$rate', '$amount')"; }
 ?>
 <form action="connection.php" method="post" class="form-signin">
                
<label for="hour">hour</label><input name="dayhour" type="text" id="dayhour" ><br>
<label for="wagetype">type</label>              
       <select name="wagetype" id="wagetype" onchange="calc()">
              <option value="PublicHolidays" id="PHOT">PublicHolidays</option>
              <option value="Normaldays" id="NDOT">Normaldays</option>
              <option value="MorningShift" id="NDOT">MorningShift</option>
       </select><br><br>
       
       <script type="text/javascript">
       function calc(){
       var a = parseFloat(document.querySelector("#dayhour").value);
       var op = document.querySelector("#wagetype").value; 
       var amount;
       if (op == "PublicHolidays") { rate = 37.5; amount = rate *a;}
         else if (op == "Normaldays") { rate = 2; amount = rate *a;}
            else if (op == "MorningShift") { rate = 6; amount = rate *a;}
                document.querySelector("#amount").innerHTML = amount;
                document.querySelector("#rate").innerHTML = rate; }
       </script>


<label for="rate">rate :</label><output name="rate"  id="rate" ></output><br>
<label for="amount">amount :</label><output  name="amount"  id="amount" ></output><br>
<button name="send"  type="submit">Sign up</button>

【问题讨论】:

  • 输出标签只用于显示计算结果,不知道你为什么要用它向后端发送数据?

标签: javascript php html mysql


【解决方案1】:

尝试将&lt;output name="rate" id="rate" &gt;&lt;/output&gt; 更改为&lt;input name="rate" id="rate" type="hidden"/&gt; 和&lt;output name="amount" id="amount" &gt;&lt;/output&gt; 更改为&lt;input name="amount" id="amount" type="hidden"/&gt;

您可以将您的 calc() 函数更改为此代码,我认为添加金额和费率的默认值以防万一它们不符合 IF 条件是个好主意

function calc() {
    var a = parseFloat(document.querySelector("#dayhour").value);
    var op = document.querySelector("#wagetype").value; 
    var amount;
    var rate;
    if (op == "PublicHolidays") { 
        rate = 37.5; amount = rate *a;
    } else if (op == "Normaldays") { 
        rate = 2; amount = rate *a;
    } else if (op == "MorningShift") { 
rate = 6; amount = rate *a;
    }
    document.getElementById("amount").value = amount;
    document.getElementById("rate").value = rate;
}

【讨论】:

    【解决方案2】:

    是的,您可以使用表单传递任何值。在这种情况下,创建一个隐藏的输入字段并将其值分配给您想要的任何标签的值。这可以使用 javascript 或通过侦听更改事件轻松地使用 JQuery 来完成。就这样。提交表格,你就有了价值。

    【讨论】:

    • 我尝试了隐藏输入字段,但它仍然无法在 mysql 中存储速率和数量变量
    • @fishcanfly 请分享您的代码以及您如何使用隐藏字段以便我提供帮助
    猜你喜欢
    • 1970-01-01
    • 2010-11-02
    • 2011-01-23
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多