Formulaire: calc, show et send 3 valeurs

Fermé
Jas 007 Messages postés 2 Date d'inscription lundi 24 octobre 2011 Statut Membre Dernière intervention 25 octobre 2011 - 25 oct. 2011 à 17:06
Jas 007 Messages postés 2 Date d'inscription lundi 24 octobre 2011 Statut Membre Dernière intervention 25 octobre 2011 - 25 oct. 2011 à 19:18
Bonjour,
1 - Je désire calculer et faire afficher trois valeurs sur l'écran pendant que l'utilisateur remplit un formulaire: total, dépôt et le solde final.
Avec JavaScript, j'ai réussi à afficher le total, mais je ne peux pas faire afficher automatiquement les deux autres valeurs (dépôt et le solde final), sauf si je demande à l'utilisateur de cliquer sur des boutons. Ce n'est pas souhaitable car les $ dépôt et solde final ne changent pas automatiquement si l'utilisateur clique sur un autre bouton radio avant d'envoyer le formulaire.
2 - Je dois envoyer à une adresse e-mail les valeurs du total, du dépôt et du solde final, avec le choix de l'utilisateur fait (ex: «Quad» et «Med»). J'ai seulement réussi à envoyer les choix tel que Quad ou Triple et Med ou non-Med, mais pas les valeurs totalisées.
Voici le code que j'ai écrit (à des fins de simplification ici, je ne mis que 2 choix de boutons radio comme sélection possible):
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Registration</title>
<script type="text/javascript">
var theForm = document.forms["registration"];
var room_price = new Array();
room_price["Quad"]=200;
room_price["Triple"]=300;
var insur_price = new Array();
insur_price["Med"]=20;
insur_price["non_Med"]=30;

function obtainRoomPrice() {
var RoomTypePrice=0;
var theForm = document.forms["registration"];
var selectedRm = theForm.elements["selectedroom"];
for(var i = 0; i < selectedRm.length; i++) {
if(selectedRm[i].checked) {
RoomTypePrice = room_price[selectedRm[i].value];
break;
}
}
return RoomTypePrice;
}
function obtainInsurPrice() {
var InsurTypePrice=0;
var theForm = document.forms["registration"];
var selectedInsur = theForm.elements["selectedinsu"];
for(var i = 0; i < selectedInsur.length; i++) {
if(selectedInsur[i].checked) {
InsurTypePrice = insur_price[selectedInsur[i].value];
break;
}
}
return InsurTypePrice;
}
function updateSum() {
var roomTotPrice = (obtainRoomPrice())+ (obtainInsurPrice()) ;
document.getElementById('totalPrice').innerHTML = "Total : $ " + roomTotPrice;
}
function depositrqrd() {
var dep = obtainInsurPrice()+ 100 ;
document.getElementById('deposit').innerHTML = "Dépôt requis : $ " + dep;
return dep
}
function finalpmt() {
var pay = obtainRoomPrice()- 100 ;
document.getElementById('paym').innerHTML = "Solde final : $ " + pay;
return pay
}
</script></head>
<body><form action="cgi-bin/formmail" id="registration" method="post" name="registration-the-test" >

<input TYPE="hidden" NAME="recipient" VALUE="moi@monemail.com">
<input TYPE="hidden" NAME="subject" VALUE="test_registration">
<input type=hidden name="title" value="registration_test">

<h1>Hotel reservation</h1><br /> <h2>Room type</h2>
<table>
<tr><td> <input type="radio" name="selectedroom" value="Quad" onclick="updateSum()" /> Quad ($200)</td></tr>
<tr><td> <input type="radio" name="selectedroom" value="Triple" onclick="updateSum()" /> Triple ($300)</td></tr>
<tr><td> <input type="radio" name="selectedinsu" value="Med" onclick="updateSum()" /> Med ($20)</td></tr>
<tr><td> <input type="radio" name="selectedinsu" value="non_Med" onclick="updateSum()" /> non-Med ($30)</td></tr>
<tr><td id='totalPrice' name="grTotal" value="roomTotPrice">Montant total</td></tr>
<tr><td> <input type="button" name="dep" value="Dépôt requis" onclick="depositrqrd()" /></td>
<td id='deposit'> </td></tr>
<tr><td> <input type="button" name="pay" value="Solde final" onclick="finalpmt()" /></td>
<td id='paym'> </td></tr>
</table>

<input type="submit" value="SEND">
</form></body></html>

MERCI À L'AVANCE!!!

1 réponse

Jas 007 Messages postés 2 Date d'inscription lundi 24 octobre 2011 Statut Membre Dernière intervention 25 octobre 2011
25 oct. 2011 à 19:18
Partie de mon post = résolu.
Quelqu'un a une idée pour la partie 2 de mon post, qui est d'envoyer les valeurs total, dépot et paiement final. Je reçois juste dans le e-mail le nom du type de chambre et du type d'assurance.
Pour la partie 1, pour ceux qui rencontrent la même difficulté, fallait juste déclarer les variables dep et pay dans la fonction updateSum() au lieu de créér de nouvelles fonctions. Simple mais fallait y penser...
0