2017-09-26 13 views
0

現在、私はHTML、JavaScript、PHPの3つの異なるページを使用しています。私はすでに入力を行いました。price * quantity JavaScriptを使用して計算できます。JavaScriptを使用して値を計算し、PHPに送信

しかし、私はこの問題を抱えています。計算された値を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/>"; 
?> 

私は値を取得することはできません。助けてください。ありがとう。

+1

段落はフォーム要素ではありません。したがって、段落に値を代入すると、フォームに関する限り、効果はありません。 – Peter

答えて

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> 
+0

私はform action = 'php.php' method = 'post'を使用しましたが、すでに動作していません。 –

+0

実際に私が提供した例は、自分のPCで正しく動作します。あなたはそれを実行するときに何が間違っているか教えてください。 –

0

は、あなたのコードによるとKhorneHolyとケビンKloetによって

を提供されたリンクをチェックあなたのHTMLに要素"form"の使用を忘れてしまった場合、PHPページにデータを送ることができます

編集:私はJavier Elicesに同意します。 POSTページ。その入力は非表示にすることができ、JavaScript関数の値を割り当てることができます

+0

私はここで

を忘れてしまった。 実際に私のコードはすでにフォームhahaを持っています.. –

+0

ああ..その場合、私は私の答えを編集しました – ErisoHV

1

結果は同じフォームの非表示フィールドに格納できます。そうすれば、フォームが送信されると、フォームが計算されます。 ID部分は計算を保存するためにjavascriptから使用されます

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

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

一部がために、フィールドの名前を設定します隠しフィールドは次のようになりますあなたのPHPプログラムによって取得されます。

あなたのHTMLが有効なフォーム定義がPHPを指していることを確認してください。

2

フォームまたはAjaxを使用してrequsetを送信してみてください。 Hierは例です。

<?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> 
関連する問題