2017-09-26 1 views
0

En ce moment j'utilise 3 pages différentes qui sont HTML, JavaScript et PHP. J'ai déjà fait l'entrée et je peux calculer price * quantity en utilisant le JavaScript.Calculer la valeur en utilisant JavaScript et envoyer à PHP

Mais j'ai ce problème: comment puis-je envoyer la valeur calculée à une page 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/>"; 
?> 

Je ne peux pas obtenir la valeur. S'il vous plaît aider. Merci.

+1

Les paragraphes ne sont pas des éléments de formulaire. Assigner une valeur à un paragraphe n'a donc aucun effet en ce qui concerne le formulaire. – Peter

Répondre

0

Essayez d'utiliser un formulaire et un type d'entrée cachée (changer le nom du fichier php de myPhp.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

j'ai utilisé la forme action = 'php.php' méthode = 'post' déjà haha ​​mais ne fonctionne pas .. –

+0

En fait l'exemple que j'ai fourni fonctionne correctement sur mon pc. Pourriez-vous s'il vous plaît dites-moi quelle est l'erreur lorsque vous l'exécutez? –

0

Vérifiez les liens fournis par KhorneHoly et Kevin Kloet

Selon votre code, vous avez oublié l'utilisation de l'élément "form" dans votre HTML, ce qui vous permettra d'envoyer les données à la page PHP

EDIT: Je suis d'accord avec Javier Elices, vous devez ajouter une entrée dans votre élément de formulaire pour envoyer cette valeur à la page POST. Cette entrée peut être masquée et vous pouvez attribuer la valeur à partir de votre fonction javascript.

+0

J'ai oublié d'écrire le

ici. effectivement mon code a déjà la forme haha ​​.. –

+0

Oh .. dans ce cas, j'ai édité ma réponse – ErisoHV

1

Vous pouvez stocker le résultat dans un champ masqué du même formulaire. De cette façon, lorsque le formulaire est envoyé, il va porter votre calcul avec lui. Le champ caché ressemblera:

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

Le id partie sera utilisée de javascript pour stocker le calcul:

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

Le nom partie va définir le nom du champ à récupéré par votre programme PHP.

Assurez-vous que votre HTML a une forme valide définition qui pointe vers votre PHP. Essayez d'utiliser un formulaire ou Ajax pour envoyer requset.

2

Hier est un exemple:

<?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>