2013-07-24 4 views
-1

Je suis relativement novice en PHP et j'essaie de créer une partie dynamique dans un formulaire de courriel où il y a deux zones de texte côte à côte. Le premier est la quantité et le second est total. Je voudrais pour cela multiplier la première zone de texte par une valeur de 15, puis afficher le résultat dans la deuxième zone de texte totale qui sera en lecture seule.Calculs dynamiques dans les zones de texte?

Des suggestions sur la façon dont j'irais? J'ai parcouru le web depuis des lustres pour essayer de trouver de l'aide mais je n'arrive pas à en trouver.

Mon code de formulaire existant est la suivante:

<table width="500" border="0" cellpadding="0" class="t4"> 
    <tr> 
     <td width="48">Code</td> 
     <td width="196">Event</td> 
     <td width="56">Cost</td> 
     <td width="66">Number</td> 
     <td width="72">£ Total</td> 
    </tr> 
    <tr> 
     <td>1</td> 
     <td>Lifewriting Workshop</td> 
     <td>£15</td> 
     <td><input type="text" name="Number-of-Tickets" id="W1"></td> 
     <td><input type="text" readonly="readonly" name="Total" id="W1"></td> 
    </tr> 
</table> 
+5

pouvez-vous montrer le code que vous avez déjà écrit? – Maximus2012

+0

Son javascript pas php vous voulez pour cela – exussum

+0

Merci! J'ai ajouté une partie du formulaire de contact. – user2482397

Répondre

0

WORKING DEMO

Juste une simple démo, rien fancy.This est en jquery, mais je suppose que la logique est ce que nous voulons.

$('input').on("keyup",function() { 
    $("#result").val(parseInt($("#amount").val(), 10)* 15); 
}); 
+0

Parfait! Merci :-) – user2482397

+0

@ user2482397: J'espère que vous êtes d'accord avec jquery, il suffit de demander car il n'a pas été étiqueté !!! n'hésitez pas à demander si vous ne comprenez pas une partie, c'est assez simple de toute façon !! –

+0

Merci! J'ai copié le code exactement comme dans jsFiddle avec Jquery inclus. Pour une raison quelconque, cela ne fonctionne pas.Serait-ce parce que j'ai un certain nombre d'autres éléments d'entrée sur la même page? – user2482397

0

en utilisant javascript vous pouvez faire la

suivante
var text1 = document.getElementById('textbox1').value; 
document.getElementById('textbox2').value = parseInt(text1) * 15; //can use parseFloat() if you have floating point numbers 

La première zone de texte de votre entrer la quantité devrait avoir un id appelé textbox1 comme

<input type='text' id='textbox1' ... 

La deuxième zone de texte devrait avoir un identifiant textbox2 . Vous pouvez avoir n'importe quel id que vous aimez tant que vous mettez l'identifiant respectif dans le code javascript pour référence. De plus, vous devez déclencher ce code à partir d'une fonction appelée par événement onkeydown ou événement onchange. Lors d'un événement de modification, vous remarquerez le changement une fois que vous avez entré les numéros et que vous avez retiré le focus de votre textbox pour appeler les événements que vous pouvez déclencher en utilisant les attributs d'événement d'un élément.

<input type='text' id='textbox1' onkeydown='somejavascriptfunc()` 

Cette solution utilise le code javascript pur, la réponse de MESSIE utilise une bibliothèque appelée jquery qui rend votre vie plus facile.

+0

C'est PARFAIT! Merci beaucoup. – user2482397

0

PHP est un langage côté serveur donc pour faire un calcul, vous devez envoyer une requête au serveur. Vous pouvez le faire en PHP en faisant un formulaire désiré, en envoyant la valeur entrée au serveur et en générant à nouveau la page mais avec le champ readonly rempli par le résultat. Le meilleur moyen est d'utiliser javascript pour cela car le calcul est vraiment simple et il n'est pas nécessaire qu'il soit exécuté sur le serveur. Recherchez les écouteurs d'événements javascript et observez jQuery qui dispose de fonctions faciles à utiliser pour extraire les valeurs des champs et gérer les événements.

Questions connexes