使用JavaScript计算值并发送给PHP

时间:2017-09-26 14:19:01

标签: javascript php

目前我正在使用3个不同的页面,即HTML,JavaScript和PHP。我已经输入了,我可以使用JavaScript计算price * quantity

但我有这个问题:如何将计算值发送到PHP页面?

HTML:

number of people:<input id="quantity" name="quantity" size='5'></input>
<br>
<br>
Price:<input type='hidden' id='price' name='price' value='755'></input>
<button type="button" onclick="sum()">calculate</button>
<p id='result' name='result'></p>

JS:

function sum() {
  var quantity = parseInt(document.getElementById('quantity').value);

  var price = parseInt(document.getElementById('price').value);

  var total = price * quantity;

  document.getElementById('result').innerHTML = total;
  document.getElementById('result').value = total;
}

PHP:

<?php
  $total = $_POST['result'];

  echo "price :".$total."<br/>";
?>

我无法获得价值。请帮忙。感谢。

4 个答案:

答案 0 :(得分:2)

尝试使用表单或Ajax发送requset。希尔就是一个例子:

<?php
if($_POST['result']){
    $total = $_POST['result'];
    echo "price :".$total."<br/>";
}
?>   

number of people: <input id="quantity" name="quantity" size='5'><br><br>            
Price: <input type='hidden' id='price' name='price' value='755'>            
<button type="button" onclick="sum()">calculate</button>            
<p id='result' name='result'></p>
<script>
    function sum() {
        var quantity = parseInt(document.getElementById('quantity').value);
        var price = parseInt(document.getElementById('price').value);
        var total = price * quantity;
        document.getElementById('result').innerHTML=total;
        document.getElementById('result').value=total;
        //Ajax
        var http = new XMLHttpRequest();
        var url ="test2.php" ;
        var params = "result="+total;
        http.open("POST",url, true);
        //Send the proper header information along with the request
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.send(params);
    }
</script>

答案 1 :(得分:1)

您可以将结果存储在同一表单的隐藏字段中。这样,当表单发送时,它将随身携带您的计算。隐藏字段将如下所示:

<input type='hidden' id='result' name='result'></input>

id 部分将用于javascript来存储计算:

document.getElementById('result').value=total;

name 部分将设置PHP程序要检索的字段的名称。

确保您的HTML具有指向PHP的有效表单定义。

答案 2 :(得分:0)

尝试使用隐藏的表单和输入类型(从myPhp.php更改php文件名):

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>test</title>
</head>
<body>

<form action="./myPhp.php" method="post">
number of people: <input id="quantity" name="quantity" size='5'></input><br><br>
Price: <input type='hidden' id='price' name='price' value='755'></input>

<button type="button" onclick="sum()">calculate</button>
<input type="hidden" id='result' name="result">
<input type="submit" value="Submit">
</form>

<script>
function sum() {
    var quantity = parseInt(document.getElementById('quantity').value);

    var price = parseInt(document.getElementById('price').value);

    var total = price * quantity;

    document.getElementById('result').innerHTML=total;
    document.getElementById('result').value=total;      
}
</script>

</body>
</html>

答案 3 :(得分:0)

检查KhorneHoly和Kevin Kloet提供的链接

根据您的代码,您忘记在HTML中使用元素"form",这将允许您将数据发送到PHP页面

编辑:我同意Javier Elices的说法,你必须在表单元素中添加一个输入,以便将该值发送到POST页面。该输入可以隐藏,您可以从javascript函数中分配值