Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 13 sur 13
  1. #1
    Candidat au titre de Membre du Club
    Profil pro Aurélien Fever
    Inscrit en
    janvier 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Nom : Aurélien Fever

    Informations forums :
    Inscription : janvier 2010
    Messages : 34
    Points : 10
    Points
    10

    Par défaut Chargement de liste dynamique - PHP et JS

    Bonsoir à tous,

    Sur ma page de création de compte, je souhaite queles gens sélectionne leur pays, en fonction du pays, la liste des départements (ou districts) apparait dans un nouveau selecteur, enfin en fonction du département sélectionné, une liste de ville apparaisse.

    J'ai beau tout essayer depuis plusieurs jours, je n'en vois pas la fin... Peut-être réussirez vous à m'aider ; )

    Voici le code de ma page de création compte, qui se charge de base de cette manière:

    Code :
    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
    <div>
    	<p>Sélectionnez votre pays</p>
    	<select name="pays" id="pays"  onchange="chargerListe('recup_departement.php','pays','departement')">
    	<?php	$reponse = $gbdd->query('SELECT id_pays, nom_pays FROM pays ORDER BY nom_pays');?>
    		<option  value="0">Choisir pays</option>
    		<?php while($donnees = $reponse->fetch(PDO::FETCH_OBJ)) 
    		{ echo '<option  value="' . $donnees->id_pays . '">' . $donnees->nom_pays . '</option>'; } 
    ?>
    	</select>
    </div>
     
    <div>
    	<p>Sélectionnez votre département</p>
    	<span id="departement">
    		<select name="departement">
    			<option  value="0">Sélectionnez un pays</option>
    		</select> 
    	</span>
    </div>
     
    <div>
    	<p>Enfin, sélectionnez votre ville</p>
    	<span id="ville">
    		<select name="ville">
    			<option  value="0">Sélectionnez un département</option>
    		</select> 
    	</span>
    </div>

    Voici le code de la page recup_departement.php :

    Code :
    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
    <?php
    if(isset($_POST['nom_liste']) && isset($_POST['val_sel']))
    {
        $reponse = $bdd->prepare("SELECT id_departement, code, nom_departement FROM departement WHERE id_pays = :id_pays ORDER BY nom_departement");
        $reponse->execute(array('id_pays' => $_POST['val_sel']));
        $i = 0;
     
        echo "<select id='departement' name='".$_POST['nom_liste']."'  onchange=\"chargeListe('recup_ville.php','departement','ville')\">";
    	while($donnees = $reponse->fetch(PDO::FETCH_OBJ))
        {
            echo "
    		<option value='". $donnees->id_departement ."'>". $donnees->nom_departement . " (" . $donnees->code . ")</option>";
            $i++;
        }
        if($i==0)
        {
            echo "<option value='0'>S&eacute;lectionnez votre pays</option>";
        }
        echo '</select>';
    }
     
     else
     {
            echo 'Parametres vides';
     }
     
    ?>
    Voici le code de la page concernant les villes cette fois-ci, recup_ville.php:

    Code :
    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
    <?php
    if(isset($_POST['noms_liste']) && isset($_POST['vals_select']))
    {
        $req = $bdd->prepare("SELECT id_ville, nom, cp FROM maps_ville WHERE id_departement = :id_departement ORDER BY nom");
        $req->execute(array('id_departement' => $_POST['vals_select']));
        $i = 0;
     
        echo "<select id='listeville' name='".$_POST['noms_liste']."'>";
        while($result = $req->fetch(PDO::FETCH_OBJ))
        {
            echo "<option value='". $result->id_ville ."'>". $result->nom . " (" . $result->cp . ")</option>";
            $i++;
        }
        if($i==0)
        {
            echo "<option value='0'>S&eacute;lectionnez votre ville</option>";
        }
        echo '</select>';
    }
     
     else
     {
            echo 'Parametres vides';
     }
     
    ?>
    Voilà pour le principal de code php, enfin le fichier de fonction en js:

    Code javascript :
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    /* chargement liste dynamique */
     
    function chargerListe(url,id_list1,id_list2)
    {
        var xhr = new objXHR(true);
        var obj =document.getElementById(id_list1);
        xhr.addParam("val_sel", obj.value);
        xhr.addParam("nom_liste", id_list2);
        xhr.getObjConnexion().onreadystatechange = function() 
    {repChargerListe(xhr.getObjConnexion(),id_list2);}
        xhr.executerRequete(url);
    }
     
    function chargerListe2(url,id_list1,id_list2)
    {
        var xhr = new objXHR(true);
        var list_dep =document.getElementById(id_list1);
     
     
        xhr.addParam("val_sel", list_dep.value);
        xhr.addParam("nom_liste", id_list2);
        xhr.getObjConnexion().onreadystatechange = function() 
    {repChargerListe(xhr.getObjConnexion(),id_list2);}
        xhr.executerRequete(url);
     
        var region =document.getElementById("region");
        region.value = list_dep.options[list_dep.options.selectedIndex].id;
    }
     
    /* chargement liste dynamique */
     
    function chargeListe(url,id_list1,id_list2)
    {
        var xhr = new objXHR(true);
        var obj =document.getElementById(id_list1);
        xhr.addParam("vals_select", obj.value);
        xhr.addParam("noms_liste", id_list2);
        xhr.getObjConnexion().onreadystatechange = function() 
    {repChargeListe(xhr.getObjConnexion(),id_list2);}
        xhr.executerRequete(url);
    }
     
    function chargeListe2(url,id_list1,id_list2)
    {
        var xhr = new objXHR(true);
        var list_dep =document.getElementById(id_list1);
     
     
        xhr.addParam("vals_select", list_dep.value);
        xhr.addParam("noms_liste", id_list2);
        xhr.getObjConnexion().onreadystatechange = function() 
    {repChargeListe(xhr.getObjConnexion(),id_list2);}
        xhr.executerRequete(url);
     
        var region =document.getElementById("region");
        region.value = list_dep.options[list_dep.options.selectedIndex].id;
    }
     
    function repChargerListe(xhr,id_div)
    {
        // Si toutes les donnees sont chagees
        if (xhr.readyState == 4)
        {
            // Et que tout c'est bien passe
            if (xhr.status == 200)
            {
                //charger les elements reçus dans la liste
                var affich_list=xhr.responseText;
                obj = document.getElementById(id_div);
                obj.innerHTML = affich_list;
            }
            else
            {
                alert('Un problème est survenu avec la requête.');
            }
        }
    }
     
    function repChargeListe(xhr,id_div)
    {
        // Si toutes les donnees sont chagees
        if (xhr.readyState == 4)
        {
            // Et que tout c'est bien passe
            if (xhr.status == 200)
            {
                //charger les elements reçus dans la liste
                var affich_list=xhr.responseText;
                obj = document.getElementById(id_div);
                obj.innerHTML = affich_list;
            }
            else
            {
                alert('Un problème est survenu avec la requête.');
            }
        }
    }
    Merci d'avance de votre aide !!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro Vincent
    Inscrit en
    juillet 2005
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 21 087
    Points : 30 692
    Points
    30 692

    Par défaut

    Ton javascript est impraticable : chargeliste, chargeliste2, chargerliste, chargerliste2 et deux fois repChargerListe. et un objXHR d'origine inconnue.

    Repars sur de bonnes bases :
    http://siddh.developpez.com/articles/ajax/

  3. #3
    Candidat au titre de Membre du Club
    Profil pro Aurélien Fever
    Inscrit en
    janvier 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Nom : Aurélien Fever

    Informations forums :
    Inscription : janvier 2010
    Messages : 34
    Points : 10
    Points
    10

    Par défaut

    Bonjour et merci de ton aide !

    En effet, j'ai retirer la fonction chargeListe2, la premiere liste fonctionne mais la seconde parametré grace à la premiere ne se charge pas.

    J'a répété la fonction chargerListe pourtant !

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro Vincent
    Inscrit en
    juillet 2005
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 21 087
    Points : 30 692
    Points
    30 692

    Par défaut

    Quel est ton code maintenant ?
    As-tu controlé si tu avais des erreurs Javascript ?

  5. #5
    Candidat au titre de Membre du Club
    Profil pro Aurélien Fever
    Inscrit en
    janvier 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Nom : Aurélien Fever

    Informations forums :
    Inscription : janvier 2010
    Messages : 34
    Points : 10
    Points
    10

    Par défaut

    Aucune erreurs javascript d'après la console.

    Les voilà, c'est sur fonctionsjs.js qu'il y'a eu le plus de changement:

    Tu pense que je devrais aussi virer la fonction chargerListe 2 ? c'est une variable pour les régions, mais elle ne sert pas...
    Code javascript :
    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
    44
    45
    46
    /* chargement liste dynamique */
     
    function chargerListe(url,id_list1,id_list2)
    {
        var xhr = new objXHR(true);
        var obj =document.getElementById(id_list1);
        xhr.addParam("val_sel", obj.value);
        xhr.addParam("nom_liste", id_list2);
        xhr.getObjConnexion().onreadystatechange = function() {repChargerListe(xhr.getObjConnexion(),id_list2);}
        xhr.executerRequete(url);
    }
     
    function chargerListe2(url,id_list1,id_list2)
    {
        var xhr = new objXHR(true);
        var list_dep =document.getElementById(id_list1);
     
     
        xhr.addParam("val_sel", list_dep.value);
        xhr.addParam("nom_liste", id_list2);
        xhr.getObjConnexion().onreadystatechange = function() {repChargerListe(xhr.getObjConnexion(),id_list2);}
        xhr.executerRequete(url);
     
        var region =document.getElementById("region");
        region.value = list_dep.options[list_dep.options.selectedIndex].id;
    }
     
    function repChargerListe(xhr,id_div)
    {
        // Si toutes les donnees sont chagees
        if (xhr.readyState == 4)
        {
            // Et que tout c'est bien passe
            if (xhr.status == 200)
            {
                //charger les elements reçus dans la liste
                var affich_list=xhr.responseText;
                obj = document.getElementById(id_div);
                obj.innerHTML = affich_list;
            }
            else
            {
                alert('Un problème est survenu avec la requête.');
            }
        }
    }


    Pas de changement (ou presque) sur la page de creation_compte:
    Code html :
    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
    <div>
    	<p>Sélectionnez votre pays</p>
    	<select name="pays" id="pays" onchange="chargerListe('recup_departement.php','pays','departement')">
    	<?php	$reponse = $gbdd->query('SELECT id_pays, nom_pays FROM pays ORDER BY id_pays');?>
    			<option  value="0">Choisir pays</option>
    			<?php while($donnees = $reponse->fetch(PDO::FETCH_OBJ))
    			{ echo '<option  value="' . $donnees->id_pays . '">' . $donnees->nom_pays . '</option>'; } ?>
    	</select>
    </div>
     
    <div>
    	<p>Sélectionnez votre département</p>
    	<span id="departement">
    		<select name="departement">
    			<option  value="0">Sélectionnez un pays</option>
    		</select> 
    	</span>
    </div>
     
    <div>
    	<p>Enfin, sélectionnez votre ville</p>
    	<span id="ville">
    		<select name="ville">
    			<option  value="0">Sélectionnez un département</option>
    		</select> 
    	</span>
    </div>

    Recup_departement :
    Code :
    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
     
    <?php
    include_once("inc/header.php");
    if(isset($_POST['nom_liste']) && isset($_POST['val_sel']))
    {
        $reponse = $gbdd->prepare("SELECT id_departement, code, nom_departement FROM departement WHERE id_pays = :id_pays ORDER BY nom_departement");
        $reponse->execute(array('id_pays' => $_POST['val_sel']));
        $i = 0;
     
        echo "<select style='width: 250px;height: 24px; margin-left:34px;' id='departement' name='".$_POST['nom_liste']."'  onchange=\"chargerListe('recup_ville.php','departement','ville')\">";
    	while($donnees = $reponse->fetch(PDO::FETCH_OBJ))
        {
            echo "
    		<option value='". $donnees->id_departement ."'>". $donnees->nom_departement . " (" . $donnees->code . ")</option>";
            $i++;
        }
        if($i==0)
        {
            echo "<option value='0'>S&eacute;lectionnez votre pays</option>";
        }
        echo '</select>';
    }
     
     else
     {
            echo 'Parametres vides';
     }
     
    ?>
    recup_ville:
    Code :
    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
     
    <?php
    include_once("inc/header.php");
    if(isset($_POST['nom_liste']) && isset($_POST['val_sel']))
    {
        $req = $gbdd->prepare("SELECT id_ville, nom, cp FROM maps_ville WHERE id_departement = :id_departement ORDER BY nom");
        $req->execute(array('id_departement' => $_POST['val_sel']));
        $i = 0;
     
        echo "<select style='width: 250px;height: 24px; margin-top:6px' id='listeville' name='".$_POST['nom_liste']."'>
    	<option value='0'>Choisissez votre ville</option>";
        while($result = $req->fetch(PDO::FETCH_OBJ))
        {
            echo "<option value='". $result->id_ville ."'>". $result->nom . " (" . $result->cp . ")</option>";
            $i++;
        }
        if($i==0)
        {
            echo "<option value='0'>S&eacute;lectionnez votre ville</option>";
        }
        echo '</select>';
    }
     
     else
     {
            echo 'Pas de ville';
     }
     
    ?>

  6. #6
    Membre confirmé
    Responsable de service informatique
    Inscrit en
    août 2006
    Messages
    174
    Détails du profil
    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : août 2006
    Messages : 174
    Points : 228
    Points
    228

    Par défaut

    Bonjur,

    Voici quelques lignes qui peuvent t'aider.

    Alors ce n'est pas de l'ajax mais de l'aja(x)

    Code :
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    // page html
    <?php
     
    //le php 
    // tu initialises une variable html_pays pour ton select
    $html_pays = "<select name='sel_pays' id='sel_pays' onchange=\"liste_departement();\"><option value=''>-- Pays --</option>";
    // tu effectues ta requete pour récuperer la liste des pays
    // puis tu boucles en concaténant toutes les lignes de ta table dans ta variable $html_pays
    $html_pays .= "<option value='$valeur'>$valeur</option>";
    // la boucle terminée tu fermes ton select
    $html_pays .= "</select>"
    ?>
    <!-- le html -->
    blabla
    <form name='' method='post' action=''>
    <?php echo $html_pays;?>
    <div id="div_departements"></div>
     
    </form>
     
     
     
    // page fonctions.js
    // objet xhr
    var xhr = null;
    function getXhr() {
    	if(window.XMLHttpRequest) xhr = new XMLHttpRequest();
      	else if(window.ActiveXObject) {
    		try {
          			xhr = new ActiveXObject("Msxml2.XMLHTTP");
         		}
        		catch (e) {
          			xhr = new ActiveXObject("Microsoft.XMLHTTP");
         		}
       	}
      	else {
        		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest, veuillez le mettre à jour");
        		xhr = false;
       	}
    }
     
    // fonction appelée par ton select onchange
    function liste_departement() {
    	var pays = document.getElementById('sel_pays').options[document.getElementById('sel_pays').selectedIndex].value;
    	if (pays == "") {
            	alert('Veuillez renseigner le pays');
            	return false;
         	}
         	else {
            	getXhr();
            	xhr.onreadystatechange = function() {
    			if(xhr.readyState == 4 && xhr.status == 200) {
     				// Nous remplacons le contenu du div par le retour de "liste_departements.php"
        				document.getElementById('div_departements').innerHTML = xhr.responseText;
    			}
     
    		}
            	xhr.open("POST",'/php/liste_departements.php',true);
            	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            	xhr.send("pays="+pays);
         }
     
    }
     
     
    // page appelée par ta fonction js 
    // page liste_departements.php
    //tu récupères la variable pays avec un isset
    //tu crées ta requete pour récupérer uniquement les départements du pays
    // tu boucles puis tu concatènes dans un variable comme pour la page html
    // c'est à la fin lorsque tu as fini de parcourir les résultats de ta requète, tu fersmes ton select et tu fais un echo de la variable
    Ensuite pour les villes c'est la même chose.
    Tu crées une 2ème fonction js pour la liste des villes, une nouvelle page php liste_villes.php par exemple. Le retour de liste_villes.php se fera dans un div que tu auras au préalable créé dans ta page html.

    Natso

  7. #7
    Candidat au titre de Membre du Club
    Profil pro Aurélien Fever
    Inscrit en
    janvier 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Nom : Aurélien Fever

    Informations forums :
    Inscription : janvier 2010
    Messages : 34
    Points : 10
    Points
    10

    Par défaut

    Merci de ton aide Natso,

    En effet, çà pourrait marcher comme çà, pour le moment, aucune erreur js ou autres, mais les départements semble ne pas vouloir s'afficher :

    La page de création adaptée aux nouvelles variables :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <div>
    	<p>Sélectionnez votre pays</p>
    	<select name="sel_pays" id="sel_pays" onchange="liste_departement('recup_departement.php')">
    		<?php	$reponse = $gbdd->query('SELECT id_pays, nom_pays FROM pays ORDER BY id_pays');?>
    		<option  value="0">Choisir pays</option>
    		<?php while($donnees = $reponse->fetch(PDO::FETCH_OBJ)) 
    		{ echo '<option  value="' . $donnees->id_pays . '">' . $donnees->nom_pays . '</option>'; } ?>
    	</select>
    </div>
     
    <div id="div_departements">
    	<p>Sélectionnez votre département</p>
    		<span id="departement">
    			<select name="departement">
    				<option  value="0">Sélectionnez un département</option>
    			</select> 
    		</span>
    </div>
    La page recup_departement
    Code :
    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
     
    <?php
    include_once("inc/header.php");
    if(isset($_POST['nom_liste']) && isset($_POST['sel_pays']))
    {
        $reponse = $gbdd->prepare("SELECT id_departement, code, nom_departement FROM departement WHERE id_pays = :id_pays ORDER BY nom_departement");
        $reponse->execute(array('id_pays' => $_POST['sel_pays']));
        $i = 0;
     
        echo "<select id='departement' name='".$_POST['nom_liste']."'  onchange=\"chargerListe('recup_ville.php','departement','ville')\">
    	<option value='0'>Choisissez votre d&eacute;partement</option>";
    	while($donnees = $reponse->fetch(PDO::FETCH_OBJ))
        {
            echo "<option value='". $donnees->id_departement ."'>". $donnees->nom_departement . " (" . $donnees->code . ")</option>";
            $i++;
        }
        if($i==0)
        {
            echo "<option value='0'>S&eacute;lectionnez votre pays</option>";
        }
        echo '</select>';
    }
     
     else
     {
            echo 'Pas de d&eacute;partement';
     }
     
    ?>
    Enfin pour ta fonction
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     
    // fonction appelée par ton select onchange
    function liste_departement() {
    	var pays = document.getElementById('sel_pays').options[document.getElementById('sel_pays').selectedIndex].value;
    	if (pays == "") {
            	alert('Veuillez renseigner le pays');
            	return false;
         	}
         	else {
            	getXhr();
            	xhr.onreadystatechange = function() {
    			if(xhr.readyState == 4 && xhr.status == 200) {
     				// Nous remplacons le contenu du div par le retour de "liste_departements.php"
        				document.getElementById('div_departements').innerHTML = xhr.responseText;
    			}
     
    		}
            	xhr.open("POST",'./recup_departement.php',true);
            	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            	xhr.send("pays="+pays);
         }
     
    }

  8. #8
    Membre confirmé
    Responsable de service informatique
    Inscrit en
    août 2006
    Messages
    174
    Détails du profil
    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : août 2006
    Messages : 174
    Points : 228
    Points
    228

    Par défaut

    Dans un premier temps dans ta page recup_departement
    il ne faut pas faire plusieurs echo.

    tu fais:
    Code :
    1
    2
    3
     
    $html_dpt = "<select id='departement' name='".$_POST['nom_liste']."'  onchange=\"chargerListe('recup_ville.php','departement','ville')\">
    	<option value='0'>Choisissez votre d&eacute;partement</option>";
    Puis dans ta boucle, tu concatènes:
    Code :
    1
    2
     
    $html_dpt .= "<option value='". $donnees->id_departement ."'>". $donnees->nom_departement . " (" . $donnees->code . ")</option>";
    tu fermes ton select une fois que tu as tout récupéré, puis tu fais un SEUL echo $html_dpt qui sera "attrapé" par document.getElementById('div_departements').innerHTML

    Normalement c'est tout.

    Tu peux toujours tester ta page recup_departement seule pour voir si tu récupères bien la liste des départements.

    Après je ne connais pas la syntaxe PDO

    Natso

  9. #9
    Membre confirmé
    Responsable de service informatique
    Inscrit en
    août 2006
    Messages
    174
    Détails du profil
    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : août 2006
    Messages : 174
    Points : 228
    Points
    228

    Par défaut

    C'est encore moi.

    C'est quoi ta variable isset($_POST['nom_liste'] dans la page recup_departements ?

    Elle n'est pas passée ici : xhr.send("pays="+pays);Si tu veux faire passer plusieurs variables à ton script , tu fais:
    xhr.send("pays="+pays+"&nom_liste="+ta valeur);Natso

  10. #10
    Membre confirmé
    Responsable de service informatique
    Inscrit en
    août 2006
    Messages
    174
    Détails du profil
    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : août 2006
    Messages : 174
    Points : 228
    Points
    228

    Par défaut

    oulala

    Je n'avais pas tout vu.

    Tu passe un paramétre à la fonction javascript sur le onchange du select.
    Paramètre que tu ne rècupères pas. onchange="liste_departement('recup_departement.php')">
    Pourquoi ce paramètre 'recup_departement.php' ?

    Natso

  11. #11
    Candidat au titre de Membre du Club
    Profil pro Aurélien Fever
    Inscrit en
    janvier 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Nom : Aurélien Fever

    Informations forums :
    Inscription : janvier 2010
    Messages : 34
    Points : 10
    Points
    10

    Par défaut

    Bonsoir Natso,

    Merci encore de ton aide, je vais essayer tout çà à nouveau.

    La variable nom_liste était le premier paramètre dans le onchange='(recup_departement.php','$1 (nom_liste)' , '$2 (sel_pays).

    Recup_departement est enfaite le fichier de connexion PDO avec le chargement des départements.

  12. #12
    Membre confirmé
    Responsable de service informatique
    Inscrit en
    août 2006
    Messages
    174
    Détails du profil
    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : août 2006
    Messages : 174
    Points : 228
    Points
    228

    Par défaut

    Bonjour Auresky,

    Désolé je n'ai pu me libérer plus tôt.

    Tu n'as pas besoin de passer le paramètre recup_departement.php dans le onchange puisque ta fonction js liste_departement sait déjà quelle page exécutée donc:
    onchange="liste_departement()">
    Puis dans ta page recup_departement.php tu fais un simple
    $sel_pays = isset($_POST['sel_pays'])?$_POST['sel_pays']:null;Puis tu exécutes ta requête pour récupérer les départements.

    N'oublie pas que le résultat de cette page remplacera tout ce qu'il ya dans le div <div id="div_departements">
    Voilà, j'espère que tu as pu avancer.
    Natso

  13. #13
    Candidat au titre de Membre du Club
    Profil pro Aurélien Fever
    Inscrit en
    janvier 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Nom : Aurélien Fever

    Informations forums :
    Inscription : janvier 2010
    Messages : 34
    Points : 10
    Points
    10

    Par défaut

    Bonsoir Natso,

    Le temps pour moi de développer un nouveau module et me revoilà sur ce fameux souci !

    Après avoir essayé mainte et mainte fois, j'arrive à un résultat satisfaisant, mais, enfaite ce formulaire est repris sur plusieurs page et est partagé en partie avec d'autres formulaires. J'aimerais ne pas trop le modifié, mais juste l'adapter.

    Pour le moment l'ensemble fonctionne, il me manque juste la $_POST['sel_pays'] de recup_ville.php, elle me reviens comme undefined dans la page de création compte.

    Une idée pourquoi la variable ets vide pour le second select alors que dans le premier tout est bon ?

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •