IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Calcul dynamique à partir de deux listes déroulantes


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut Calcul dynamique à partir de deux listes déroulantes
    Bonsoir,

    alors comme le titre l'indique je cherche à faire une liste déroulante dynamique.

    En détails ?

    Donc déjà voici mon site pour tester mes pages web :
    http://alexandre.1allo.net/OffersTS2.php

    Sur cette page j'aimerais que selon la value, de l'item de la liste déroulante que sélectionne le client, sur le bas de l'écran s'affiche le prix. Le prix est la value de la 1 er liste déroulante * (fois) la value de la 2eme liste déroulante.

    Tout mes tests sont échoués.
    Voici mon code:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <form name="Locate" method="post">
                            <center><select name="TimeToLocate" class="boiteFormulaire" id="item1">
                                <option value="1" selected="selected">1 mois</option>
                                <option value="3">3 mois</option>
                                <option value="6">6 mois</option>
                                <option value="9">9 mois</option>
                                <option value="12">12 mois</option>
                                <option value="24">24 mois</option>
                            </select></center>
                        </p>
     
          <p align="center">Nombre de slots :</p>
     
    						<center><select name="Slots" class="boiteFormulaire" id="item2">
                                <option value="0.6" selected="selected">2 Slots</option>
                                <option value="1.5">5 Slots</option>
                                <option value="3">10 Slots</option>
                                <option value="6">20 Slots</option>
                                <option value="9">30 Slots</option>
                                <option value="12">40 Slots</option>
    							<option value="15">50 Slots</option>
    							<option value="18">60 Slots</option>
    							<option value="21">70 Slots</option>
    							<option value="24">80 Slots</option>
    							<option value="27">90 Slots</option>
    							<option value="30">100 Slots</option>
    							<option value="33">110 Slots</option>
    							<option value="36">120 Slots</option>
    							<option value="39">130 Slots</option>
    							<option value="42">140 Slots</option>
    							<option value="45">150 Slots</option>
    							<option value="48">160 Slots</option>
    							<option value="51">170 Slots</option>
    							<option value="54">180 Slots</option>
    							<option value="57">190 Slots</option>
    							<option value="60">200 Slots</option>
                            </select></center>

    Voilà ce que j'avais essayé, sans succés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
                            if(isset($_POST["Slots"]) or isset($_POST["TimeToLocate"])){
                                echo 'Prix : ' . $_POST["Slots"] * $_POST["TimeToLocate"] . ' € TTC';
                            }
                            ?>
    Si vous pouviez m'aider.
    Bonne soirée
    Dernière modification par Bovino ; 06/12/2012 à 21h40. Motif: Merci d'indiquer le langage utilisé ([code=xxx]) !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonsoir,

    qu'est ce qui marche pas ? Valeur pas correct ? Une erreur est affichée ?

    EDIT : Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_POST["Slots"]) AND isset($_POST["TimeToLocate"])){
        echo 'Prix : ' . intval($_POST["Slots"]) * intval($_POST["TimeToLocate"]) . ' € TTC';
    }
    remplace le OR par AND car il faut que tes deux variable soient présente et non soit l'une soit l'autre

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    en fait ce que je voudrai c'est ne pas être obliger d'appuyer sur le bouton pour que le prix s'affiche. A partir du moment ou le user change l'item de la liste de sélection, le prix se change automatiquement.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Tourne toi vers du Javascript alors et non du PHP car le PHP doit recevoir une requête pour exécuter ton script.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Peux-tu me donner un indice sur la façon à la quelle je dois procéder ?

  6. #6
    Membre régulier Avatar de lightbulb
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 108
    Points : 96
    Points
    96
    Par défaut
    Tu peux utiliser la bibliothèque javascript jQuery pour te simplifier la tache, elle est standard et fonctionne donc sur tous les navigateurs. Avec cette librairie le code que tu cherches se présente sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $('#id_du_select').change(function(){
         //TODO
    });
    Lors d'un changement de valeur du select le code à l'intérieur de la fonction sera exécuté.

  7. #7
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Points : 144
    Points
    144
    Par défaut
    Voici un exemple complet et operationel en ajax qui peux lier une multitude de liste:
    ta requete 1er select ==> Bien regarder le onchange
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select name="country" onchange="getState(this.value)">
    <option value="">Select Country</option>
    $sql = "SELECT * FROM country WHERE lang='" . $_SESSION['lang'] . "'";
    $result = mysql_query($sql);
    echo $result;
    while($ln_country = mysql_fetch_array($result)){
    	echo "<option value=\"".$ln_country['id_group_country']."\">" . $ln_country['name_country'] . "</option>";
    }

    Le 2ieme select
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="statediv"><select name="state" >
    <option value="">Select Country First</option>
    </select>

    les fct js dans le head: ATTENTION au getElementById
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    function getXMLHTTP() { 
    		var xmlhttp=false;	
    		try{
    			xmlhttp=new XMLHttpRequest();
    		}
    		catch(e)	{		
    			try{			
    				xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			catch(e){
    				try{
    				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    				}
    				catch(e1){
    					xmlhttp=false;
    				}
    			}
    		}
     
    		return xmlhttp;
        }
     
    	function getState(countryId) {		
     
    		var strURL="models/findState.php?country="+countryId;
    		var req = getXMLHTTP();
     
    		if (req) {
     
    			req.onreadystatechange = function() {
    				if (req.readyState == 4) {
    					// only if "OK"
    					if (req.status == 200) {						
    						document.getElementById('statediv').innerHTML=req.responseText;						
    					} else {
    						alert("There was a problem while using XMLHTTP:\n" + req.statusText);
    					}
    				}				
    			}			
    			req.open("GET", strURL, true);
    			req.send(null);
    		}		
    	}
    Le code PHP de la 2ieme liste qui va etre generer:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php 
    	session_start();
    	$link = mysql_connect("xxxxx", "xxxxx", "xxxx");
    	mysql_select_db("estate");
     
    	$country = $_GET['country'];
    	$query="SELECT * FROM state WHERE id_group_country='".$country."' AND lang='" . $_SESSION['lang'] . "'";
    	$result=mysql_query($query);
    ?>
        <select name="state" onchange="getCity(<?php echo $country?>,this.value)">
            <option value="">Select State</option>
    <?php 
    	while($row=mysql_fetch_array($result)) { ?>
    		<option value="<?php echo $row['id_group_state']?>"><?php echo $row['name_state']?></option>
    <?php } ?>
    	</select>

    Voila ! Si souci suis dans le coin. A adapter selon tes besoins
    D

Discussions similaires

  1. [AC-2007] Calcul à partir d'une liste déroulante à choix multiples
    Par MatAllwhite dans le forum IHM
    Réponses: 13
    Dernier message: 19/06/2013, 10h22
  2. Réponses: 2
    Dernier message: 05/01/2013, 12h42
  3. Deux listes déroulantes dynamiques
    Par geforce dans le forum JSF
    Réponses: 10
    Dernier message: 11/01/2012, 17h17
  4. Réponses: 3
    Dernier message: 01/03/2010, 16h22
  5. [PHP-JS] Deux listes déroulantes dynamiques
    Par zana74 dans le forum Langage
    Réponses: 9
    Dernier message: 29/08/2006, 12h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo