Précédent   Forum du club des développeurs et IT Pro > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/12/2012, 00h11   #1
Auresky
Invité régulier
 
Aurélien Fever
Inscription : janvier 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : Aurélien Fever

Informations forums :
Inscription : janvier 2010
Messages : 31
Points : 8
Points : 8
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 !!
Auresky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 00h28   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 485
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 485
Points : 21 307
Points : 21 307
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/
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 12h01   #3
Auresky
Invité régulier
 
Aurélien Fever
Inscription : janvier 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : Aurélien Fever

Informations forums :
Inscription : janvier 2010
Messages : 31
Points : 8
Points : 8
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 !
Auresky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 12h09   #4
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 485
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 485
Points : 21 307
Points : 21 307
Quel est ton code maintenant ?
As-tu controlé si tu avais des erreurs Javascript ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 14h00   #5
Auresky
Invité régulier
 
Aurélien Fever
Inscription : janvier 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : Aurélien Fever

Informations forums :
Inscription : janvier 2010
Messages : 31
Points : 8
Points : 8
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';
 }
 
?>
Auresky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 16h48   #6
mlebeguec
Membre à l'essai
 
Responsable de service informatique
Inscription : août 2006
Messages : 24
Détails du profil
Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : août 2006
Messages : 24
Points : 21
Points : 21
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
mlebeguec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 22h26   #7
Auresky
Invité régulier
 
Aurélien Fever
Inscription : janvier 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : Aurélien Fever

Informations forums :
Inscription : janvier 2010
Messages : 31
Points : 8
Points : 8
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);
     }
 
}
Auresky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 23h06   #8
mlebeguec
Membre à l'essai
 
Responsable de service informatique
Inscription : août 2006
Messages : 24
Détails du profil
Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : août 2006
Messages : 24
Points : 21
Points : 21
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
mlebeguec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 23h16   #9
mlebeguec
Membre à l'essai
 
Responsable de service informatique
Inscription : août 2006
Messages : 24
Détails du profil
Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : août 2006
Messages : 24
Points : 21
Points : 21
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
mlebeguec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 23h22   #10
mlebeguec
Membre à l'essai
 
Responsable de service informatique
Inscription : août 2006
Messages : 24
Détails du profil
Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : août 2006
Messages : 24
Points : 21
Points : 21
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
mlebeguec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 18h34   #11
Auresky
Invité régulier
 
Aurélien Fever
Inscription : janvier 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : Aurélien Fever

Informations forums :
Inscription : janvier 2010
Messages : 31
Points : 8
Points : 8
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.
Auresky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 07h03   #12
mlebeguec
Membre à l'essai
 
Responsable de service informatique
Inscription : août 2006
Messages : 24
Détails du profil
Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : août 2006
Messages : 24
Points : 21
Points : 21
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
mlebeguec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 00h24   #13
Auresky
Invité régulier
 
Aurélien Fever
Inscription : janvier 2010
Messages : 31
Détails du profil
Informations personnelles :
Nom : Aurélien Fever

Informations forums :
Inscription : janvier 2010
Messages : 31
Points : 8
Points : 8
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 ?
Auresky est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 20h23.


 
 
 
 
Partenaires

Hébergement Web