Petit problème formulaire et évènement onChange

Puec Messages postés 12 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 27 janvier 2005 - 26 janv. 2005 à 18:41
cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 - 27 janv. 2005 à 21:49
Bonjour,

Je m'embrouille un peu sur qui (JS ou PHP) fait quoi... J'aurais besoin d'aide pour rendre le formulaire interactif en rafraichissant la page sans perdre mes données php ni les valeurs deja saisies par l'utilisateur et afficher un prix en fonction du nombre de personnes sélectionnées par l'utilisateur. euh... c'est clair ?
Voici mon code :
La variable $tarif provient d'une requete SQL.


<head>
<script language="JavaScript" type="text/javascript">
function ControleVide()
{
good = true;
<!--d'autres vérif sont faites -->
if ((document.resa.adulte.selectedIndex==0)&&(document.resa.enfant.selectedIndex==0))
{good = false;
alert('Il doit y avoir au moins un voyageur !');}
if (good){
document.resa.action = "confirmation.php?code=1";
document.resa.submit();}
}
</script>
</head>
<form name="resa" method="POST">
nombres adultes
<select name="adulte" onChange="<?php $nb = $_POST['adulte']; $total = $total + $nb * $tarif;?>">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
nombres enfants
<select name="enfant" onChange="<?php $nb = $_POST['enfant']; $total = $total + $nb * $tarif;?>">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

total à payer : <?php echo"$total";?>

</form>

Merci d'avance pour votre aide !!

5 réponses

cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
27 janv. 2005 à 02:49
Un onChange ça ne marche pas de même. Ton code PHP tu devras le mettre
dans la page suivante. Un onChange il faut qu'il appelle une fonction
JavaScript pour marcher.

----------------

eXon
http://www.lookstrike.com
0
Puec Messages postés 12 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 27 janvier 2005
27 janv. 2005 à 11:51
Merci beaucoup pour ta réponse !
Mais je ne comprends pas très bien comment je peux dans une fonction JS effectuer un calcul avec une variable php. Pourrais-tu me donner plus d'info ? De plus, je voudrais tout faire sur la meme page sachant que j'ai des champs type text dans ce formulaire et que je voudrais les conserver apres le onChange, c'est possible ?
Désolé pour mes questions un peu simplistes mais je suis débutante...

Gaelle
0
cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
27 janv. 2005 à 12:19
Ce n'est pas très compliqué. Il suffi d'y penser. Tu apelle une
fonction javascript dans ton onChange et dans cette fonction, tu peux
soit effectué le calcul en Javascript ça se fait aussi bien ou en PHP
et après tu la mets dans une variable JS avec un echo. Même que dans
ton cas tu dois le faire avec JS seulement vu que tu ne peux pas
effectuer ces calcules sans cliquer sur le bouton envoyer ou regarcher
la page. Exemple de fonction où la variable JS (change le onChange par
="calcul();") et la variable JS total aura toujours la valeur que tu
désir:

<script language="javascript">

function calcul(){

total =
(document.resa.adulte.options[document.resa.adulte.selectedIndex].value
+
document.resa.enfant.options[document.resa.enfant.selectedIndex].value)
* <?php echo $tarif; ?>;

}

</script>


----------------

eXon
http://www.lookstrike.com
0
Puec Messages postés 12 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 27 janvier 2005
27 janv. 2005 à 17:26
Désolé de t'embeter encore mais ton code me donne une erreur si je mets la variable php dans la fonction JS.
J'ai testé l'affichage avec une alert et l'addition sur les 2 nombres selectionnés correspond en fait à une concaténation. Pourrais-tu aussi me dire comment tu gères l'affichage de ta variable JS dans le code html.
total : <script>echo "total";</script>

encore merci pour ton aide !
Gaelle
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
27 janv. 2005 à 21:49
Ce n'est pas de cette façon tu dois le faire. Tu dois ouvrir et fermer
les tags PHP où tu mets du PHP (à moins que tu affiche ton code
javascript avec un echo dans PHP tu utilises la conquaténisation).
Exemple:

<script language="javascript">

message = <?php echo $message; ?>;

</script>


Ici dans l'exemple la variable JS message sera égal à la variable PHP message (elle doit déjà être initialisé évidement).


----------------

eXon
http://www.lookstrike.com
0
Rejoignez-nous