Posez votre question Signaler

[ajax] listes liées

redwire 259Messages postés 16 décembre 2004Date d'inscription - Dernière réponse le 29 déc. 2010 à 12:40
J'ai utilisé la méthode exposée dans le tuto http://siddh.developpez.com/articles/ajax/#LIV-A
mais j'ai transposé à une table tb_pays et une table tb_ville....

j'ai beau cherché l'erreur, ma seconde liste est toujours vide quand je choisis un pays....
<?php include("haut.php") ; // contient la connexion avec la base ?>
<div id="corps">
		<script type='text/javascript'>
			var xhr = null; 
	 
			function getXhr(){
				if(window.XMLHttpRequest) // Firefox et autres
				   xhr = new XMLHttpRequest(); 
				else if(window.ActiveXObject){ // Internet Explorer 
				   try {
			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
			            } catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
				}
				else { // XMLHttpRequest non supporté par le navigateur 
				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				   xhr = false; 
				} 
			}
			
			/**
			* Méthode qui sera appelée sur le click du bouton
			*/
			function go(){
				getXhr();
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200){
						leselect = xhr.responseText;
						// On se sert de innerHTML pour rajouter les options a la liste
						document.getElementById('ville').innerHTML = leselect;
					}
				}

				// Ici on va voir comment faire du post
				xhr.open("POST","ajaxville.php",true);
				// ne pas oublier ça pour le post
				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				// ne pas oublier de poster les arguments
				// ici, l'id du pays
				sel = document.getElementById('pays');
				idpays = sel.options[sel.selectedIndex].value;
				xhr.send("id_pays="+idpays);
			}
		</script>
		<form>
			<fieldset>
				<legend>lieux:</legend>
				<label>pays</label>
				<select name='pays' id='pays' onchange='go()'>
					<option value='-1'>Aucun</option>
					<?
						$res = mysql_query("SELECT * FROM tb_pays ORDER BY id_pays");
						while($row = mysql_fetch_assoc($res)){
							echo "<option value='".$row["id_pays"]."'>".$row["pays"]."</option>";
						}
					?>
				</select>
				<label>ville</label>
				<div id='ville' style='display:inline'>
				<select name='ville'>
					<option value='-1'>Choisir un pays</option>
				</select>
				</div>
			</fieldset>
		</form>
	</div>
	
<?php include("bas.php") ?>


et le fichier ajaxville.php
<?php
	echo "<select name='ville'>";
	if(isset($_POST["id_pays"])){
		$id_pays = $_POST["id_pays"];
		mysql_connect("localhost","root","");
		mysql_select_db("base_setlist");
		$res = mysql_query("SELECT * FROM tb_ville WHERE id_pays = $idpays ORDER BY ville");
		while($row = mysql_fetch_assoc($res))
		{
			echo "<option value='".$row["id_ville"]."'>".$row["ville"]."</option>";
		}
	}
	echo "</select>";
?>


merci:D
Lire la suite 

[ajax] listes liées »

56 réponses
Réponse
+3
moins plus
il n'y a rien a télécharger

le principe d'AJAX:
- sur un evenement (un onChnage d'une liste par ex) on appelle une fonction Javascript/ajax

qui va en arrière plan, sans recharger la page, appeler un script php sur le serveur en lui passant la valeur selectionnées ds la liste1

- ce script va lire ds la BDD et genrer une liste2 et l'envoyer en réponse à Ajax

- à la réception de la réponse, Ajax va écrire la liste par innerHTML dans un div de ta page

<html>
<head>
<script type="text/javascript">
//fonction AJAX
//partie envoie de la requette, cette fct est appelée sur le onChange de la liste1
function makeRequest(url,id_lire,id_ecrire){
	var http_request = false;
		//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Abandon :( Impossible de créer une instance XMLHTTP');
            return false;
        }
        http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse
		// lancement de la requete
		http_request.open('POST', url, true);
		//changer le type MIME de la requête pour envoyer des données avec la méthode POST ,  !!!! cette ligne doit etre absolument apres http_request.open('POST'....
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		obj=document.getElementById(id_lire); //on vient lire la valeur selectionnée ds la liste1
		data="localisation="+obj.value; //on envoie la valeur au script php en POST
        http_request.send(data);
}

//partie traitement de la réponse
function traitementReponse(http_request,id_ecrire) {
	//qd on recoit la reponse:
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
					// cas avec reponse de PHP en mode texte:
			var reponse=http_request.responseText;
			//alert(reponse); //TEST
			
			//	on va ecrire la réponse, c a d la liste2 dans le div qui a pour id  id_ecrire
			var obj=document.getElementById(id_ecrire);
				obj.innerHTML=reponse;
		} 
		else {
                alert('Un problème est survenu avec la requête.');
        }
    }
}
</script>
</head>
</html>
<table>
<td align="center" style="border:2px solid">
<form action='result-affaire.php' method='POST'>
<select name="localisation" id="id_liste1" onChange="makeRequest('reponsePhpAjax.php','id_liste1','id_div_liste2');">
<!-- on appelle la fct sur le onChange en lui passant l'url du script php appelé,l'id de la liste 1, l'id ou iol faut ecrire la réponse-->
<?php

$sql='SELECT Localisation FROM affaire';
$list=mysql_query($sql) or die("Erreur de connexion au serveur SQL");
echo'<option>Sélectionnez la localisation</option>';
while ($data = mysql_fetch_array($list)){
	echo'<option value='.$data['*'].'>'.$data['Localisation'].'</option>';
}
?>
</select>
<p></p>
<input type="submit" name="affcicher" value="Afficher">
</form>
</td>

<div id="id_div_liste2"><!-- c'est la que par innerHTML AJAX va ecrire la liste2 --></div>

//ce n'est pas le script result-affaire.php  qu'il faut appeler mais par exemple reponsePhpAjax.php

le code de reponsePhpAjax.php:
<?php
	//recup de la valeur passée par Ajax, valeur selectionnée dans la liste 1
	$localisation=$_POST['localisation'];
	//connexion bdd
	mysql_connect......
	mysql_select_db.....
	//requette
	$sql="SELECT * FROM affaire WHERE Localisation='$localisation';";
	$list=mysql_query($sql) or die("Erreur de connexion au serveur SQL");
	$reponse='<select name="nom_affaire">';
	$reponse.='<option>S&eacute;lectionnez le nom de l affaire</option>';
	while ($data = mysql_fetch_array($list)){
		$reponse.='<option value='.$data['idAffaire'].'>'.$data['NomAff'].'</option>';

	}
	$reponse.='</select>';

	//on envoie la reponse, c'est a dire la liste complete ainsi generée à AJAX
	echo $reponse;
?>
Ajouter un commentaire
Réponse
+1
moins plus
salut, moi aussi je me suis pris la tête avec les listes déroulantes, j'ai un bon tuyau si vous le souhaitez :
http://www.roodali.com/...
http://www.roodali.com/...
ces les 2 seuls exemples que j'ai pu faire fonctionner, bon courage
Ajouter un commentaire
Réponse
+1
moins plus
sel = document.getElementById('pays'); c'est la que ca va pas pourquoi "pays"?
Ajouter un commentaire
Réponse
+1
moins plus
bonsoir;

j'avais le même problème, mais sur firefox seulment;

le probleme :

document.getElementById('ville').innerHTML = leselect;

cette instruction remplace le contenu html de la DIV "ville"; donc le select nomé "livre" sera replacé par un autre, et même si ils ont le même nom (le nouveau et l'ancien select), le firefox ne réussi pas à traiter le nouveau select,

la solution et de garder l'ancien select mais de supprimer son contenu (les options) et le remplacer par un autre, une petite requête sur le "Sheikh" google, j'ai trouver cette "fatwa" :

http://www.dhtmlgoodies.com/index.html?whichScript=ajax_chained_select

c bien fait et réussi,

good luck
i. samson - 1 juin 2008 à 23:44
enfin une info pertinente sur ce sujet ô combien sensible. merci...
Ajouter un commentaire
Réponse
+1
moins plus
bonjour redwire,
j'ai le même problème que toi si t' as encore ton code pourra tu le poster SVP !!
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour, j'ai moi aussi un problème avec l'application de ce tutoriel. Quelqu'un pourrait-il m'aider à l'appliquer?? Merci d'avance de votre aide.
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour,

Il y a quelques chose que je n'ai toujours pas compris avec AJAX, quels fichiers telecharger ??

Car je cherche moi aussi à faire une liste déroulante, et faire en sorte qu'une seconde liste déroulante se trouvant sur une autre page affiche certains résultats en fonction de la premiere.


Ma premiere liste déroulante sur index.php :

<table>
<td align="center" style="border:2px solid">
<form action='result-affaire.php' method='POST'>
<select name="Affaire">
<?php
$sql='SELECT Localisation FROM affaire';
$list=mysql_query($sql) or die("Erreur de connexion au serveur SQL");
{echo'<option>Sélectionnez la localisation</option>';}
while ($data = mysql_fetch_array($list))
{echo'<option value='.$data['*'].'>'.$data['Localisation'].'</option>';}
?>
</select>
<p></p>
<input type="submit" value="Afficher">
</form>
</td>


et ma seconde sur result-affaire.php :

$_SESSION['Localisation']=$_POST['Affaire'];
?>

<select name="Localisation">
<?php
if($_SESSION['Localisation']>0)
{
$sql="SELECT * FROM affaire WHERE Localisation='$_SESSION[Localisation]';";
$list=mysql_query($sql) or die("Erreur de connexion au serveur SQL");
{echo'<option>Sélectionnez le nom de l affaire</option>';}
while ($data = mysql_fetch_array($list))
{echo'<option value='.$data['idAffaire'].'>'.$data['NomAff'].'</option>';}
}
?>


Si quelqu'un pouvait m'eclairer parce que je n'ai rien saisi a ce qu'est vraiment AJAX, ce qui je pense pourrait m'etre d'une grande aide !
Ajouter un commentaire
Réponse
+1
moins plus
OK je vous remercie pour cette réponse rapide et efficace.

Seulement maintenant j'ai un autre soucis :
Suite à un choix dans une liste déroulante, sur une nouvelle page s'affiche le nom, l'adresse, le tel et l'e-mail de toutes les occurrences concernées (par le choix fait dans la liste déroulante, qui est un numéro de département).
A coté de chaque suite de données (j'entends par la le nom, l'adresse, le tel et l'e-mail), j'y ai mis un bouton afin qu'ensuite on puisse accéder à d'autres détails de la suite de données choisie.
Seulement j'ai déclaré une variable de session et comme celle ci n'est pas incrémentée elle s'écrase à chaque passage dans la boucle, voici le code :

--resultaff.php--
<?php
session_start();
?>
<html>
<body>
<form action='affinterv2.php' method='POST'>
<?php
$user="root";
$host="localhost";
$bdd="terawatt";
mysql_connect($host,$user) or die("Erreur de connexion au serveur SQL");
mysql_select_db($bdd);

$_SESSION['Localisation']=$_POST['Affaire'];
?>
<table style="border:2px solid">
<tr align="center">
<th width=200 height=35 style="border:1px solid">Département/Pays</th>
<th width=200 height=35 style="border:1px solid">Nom</th>
<th width=200 height=35 style="border:1px solid">Adresse</th>
<th width=200 height=35 style="border:1px solid">Etat</th>
<th width=200 height=35 style="border:1px solid">Intervenants</th>
</tr>
<?php
$sql="SELECT * FROM affaire WHERE Localisation='$_SESSION[Localisation]';";
$list=mysql_query($sql) or die("Erreur de la requête SQL");
while ($Donnees = mysql_fetch_array($list))
{
?>
<tr align="center">
<td width=200 height=35><?php echo $Donnees['Localisation']; ?></td>
<td width=200 height=35><?php echo $Donnees['NomAff']; ?></td>
<td width=200 height=35><?php echo $Donnees['Adresse']; ?></td>
<td width=200 height=35><?php echo $Donnees['Etat']; ?></td>
<td width=200 height=35><input type="submit" value="Voir les intervenants"></td>
</tr>
<?php
$_SESSION['NomAff']=$Donnees['NomAff'];
}
?>
</table>
</form>
</body>
</html>



Et j'aimerais pouvoir l'utiliser dans une reqûete d'une autre page du coup, en voici le code (en phase de test pour l'instant) :

--affinterv2.php--
<?php
session_start();
?>
<html>
<body>
<form action='affinterv.php' method='POST'>
<?php
$user="root";
$host="localhost";
$bdd="terawatt";
mysql_connect($host,$user) or die("Erreur de connexion au serveur SQL");
mysql_select_db($bdd);

$sql="SELECT Localisation, NomAff, Adresse, Etat FROM affaire WHERE Localisation='$_SESSION[Localisation]' AND NomAff='$_SESSION[NomAff]';";
$list=mysql_query($sql) or die("Erreur de la requête SQL");
$Donnees = mysql_fetch_array($list);

echo $Donnees['NomAff'];
?>
</form>
</body>
</html>




J'ai pensé à faire un tableau mais je n'ai pas su l'exploiter cela ne m'affiche rien de rien, alors que comme ça s'affichera seulement sur affinterv2.php, le nom de la derniere suite de données passée dans le tableau de resultaff.php. Et cela meme si je clique sur le bouton d'où, par exemple, le nom est "tartempion" qui se trouve en debut ou milieu du tableau, j'aurais toujours le nom du dernier inscrit sur le tableau.

Donc voila si vous pouviez m'aider, car je ne comprends rien à ces tableaux...
Merci par avance.
Ajouter un commentaire
Réponse
+1
moins plus
NON , dans cette partie:

//fonction AJAX
//partie envoie de la requette, cette fct est appelée sur le onChange de la liste1
function makeRequest(url,id_lire,id_ecrire){
.....


il ne faut surtout pas remplace id_lire, id_ecrire ce sont des noms de variable correspondant aux argulents passés à la fonction, ainsi la fonction est "universelle"

par contre dans la partie appel de la fct:

<form action='result-affaire.php' method='POST'>
<select name="localisation" id="id_liste1" onChange="makeRequest('reponsePhpAjax.php','id_liste1','id_div_liste2');">
<!-- on appelle la fct sur le onChange en lui passant l'url du script php appelé,l'id de la liste 1, l'id ou iol faut ecrire la réponse-->


il faut bien mettre les valeurs correspondant au id= de la liste 1 et à id= du div ou tu veux ecrire
Ajouter un commentaire
Réponse
+0
moins plus
personne? je pige toujours pas pourquoi ça marche pas...

merci...
spalc - 10 mai 2007 à 15:26
g exactement le meme soucis... pourtant le tuto à l'air clean. je n'arrive meme pas à faire marcher l'exemple donné (sans rienc changer), la deuxième liste reste vite qd on change la première... as suivre...
spalc - 11 mai 2007 à 12:07
suite a mon précédent post - du nouveau (en bien)
J'ai eu le meme soucis en recopiant exactement le code de SIDDH sur developpez.com. Impossible de le faire marcher, la deuxième liste reste vide.
Par contre en téléchargeant l'archive zip contenant toutes les sources de l'article de SIDDH, ca marche (le code est par endroit différent que celui du tutoriel).
Il faudra juste mettre en commentaire "alert(xhr.readyState);" dans auteurs.php pour éviter les alertes, et ca marche très bien (pour moi en tout cas sous WAMP).
147258 - 24 sept. 2009 à 22:31
ol migo como te illemasse
Ajouter un commentaire
Réponse
+0
moins plus
Le problème peut être dû à l'emplacement du fichier ajax.php. J'avais mis mon fichier ajax.php dans le dossier ou j'en avais besoin mais en fait il était impossible de l'appeler, j'ai donc mis mon ajax.php dans ma racine. ++
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,

dans ta page:

<div id='ville' style='display:inline'>
<select name='ville'>
<option value='-1'>Choisir un pays</option>
</select>
</div>


tout ce qui est entre <div id='ville' style='display:inline'> et </div> ne sert à rien puisque tu va écrire par la réponse Ajax <select .... et toutes les options

Mais ce n'est pas ça qui gène.

Essayes en mettant comme requette dans ajax.ph:

		$res = mysql_query("SELECT * FROM tb_ville WHERE id_pays = '".$id_pays."' ORDER BY ville");


car tu as mis $id_pays = $_POST["id_pays"]; un peu plus haut, donc pas bonne variable

de plus il faut des ' de part et d'autre de la valeur à tester.

@lain
Alain_42Nikoninho - 25 avril 2008 à 14:02
Grr j'ai mélangé les deux réponses !
Nikoninho - 25 avril 2008 à 15:59
RE!!

Bon c'est bon j'ai tout réadapté et tout marche nickel!!

- dernier soucis : sous la version d'ie que j'utilise dans l'entreprise lorsque je selectionne une valeur dont je ne fais aucun traitement il m'affiche quand même le div... c'est à dire un leger espace vide aprés le champ...
[à la place du champs qui devrait apparait quand on fait la selection de l'élément associé au traitement (sge...)]

Tu m'as suivi?

Sur la version que j'utilise sur mon portable je n'ai pas ce probleme... cela vient de la version d'internet explorer...
( je suis connecté au réseau de l'entreprise avec mon pc portable et avec un pc de l'entreprise aussi... ce qui me permet de lancer mon application sur le réseau à partir de l'un ou l'autre des ordinateurs)

De même j'ai un autre probléme du même type :
- sur mon pc pas de soucis lorsque je tape "fra" pour rechercher la france dans ma liste de selection c'est bon je tombe direct dessus mais par contre si je me met sur celui ci sa ne marche plus ==> ici j'aurais tous les pays qui commencent par un "a" c'est à dire la dérnière lettre tapée... pourquoi?

Peut-etre y a t-il une option dans les params d'ie???

MERCI
Alain_42 - 25 avril 2008 à 17:29
lorsque je selectionne une valeur dont je ne fais aucun traitement il m'affiche quand même le div...

si tu as mis onChange dans la balise <select automatiquement tu appelles par Ajax le script php

donc il te répond. Vois si en mettant seulement dans le cas sans traitement:

$aff=""; 
echo aff; 

ça supprimes ton Pb ?

ou alors essayes en remplaçant ton <div id="liste2"></div> par <span id="liste2"></span> ??

- sur mon pc pas de soucis lorsque je tape "fra" pour rechercher la france dans ma liste de selection c'est bon je tombe direct dessus mais par contre si je me met sur celui ci sa ne marche plus ==> ici j'aurais tous les pays qui commencent par un "a" c'est à dire la dérnière lettre tapée... pourquoi?

la je ne vois pas trop, il faudrait que tu me donnes le code des deux fichiers. En MP si tu veux.
Ajouter un commentaire
Réponse
+0
moins plus
J'ai aussi pensé à nommer la balise <input> seulement ça ne fonctionne pas non plus....
Ajouter un commentaire
Réponse
+0
moins plus
Dans ton cas il n'y a aucun interêt à utiliser les sessions

il faut mettre un lien a chaque ligne, si tu préféres un bouton tu peux toujours mettre une image de bouton à la place

-resultaff.php--

<html>
<body>
<form action='affinterv2.php' method='POST'>
<?php
$user="root";
$host="localhost";
$bdd="terawatt";
mysql_connect($host,$user) or die("Erreur de connexion au serveur SQL");
mysql_select_db($bdd);

//$_SESSION['Localisation']=; 
?>
<table style="border:2px solid">
<tr align="center">
<th width=200 height=35 style="border:1px solid">Département/Pays</th>
<th width=200 height=35 style="border:1px solid">Nom</th>
<th width=200 height=35 style="border:1px solid">Adresse</th>
<th width=200 height=35 style="border:1px solid">Etat</th>
<th width=200 height=35 style="border:1px solid">Intervenants</th>
</tr>
<?php
$sql="SELECT * FROM affaire WHERE Localisation='$_POST['Affaire'];";
$list=mysql_query($sql) or die("Erreur de la requête SQL");
while ($Donnees = mysql_fetch_array($list))
{
?>
<tr align="center">
<td width=200 height=35><?php echo $Donnees['Localisation']; ?></td>
<td width=200 height=35><?php echo $Donnees['NomAff']; ?></td>
<td width=200 height=35><?php echo $Donnees['Adresse']; ?></td>
<td width=200 height=35><?php echo $Donnees['Etat']; ?></td>
<!-- on met un lien qui va appeler la page affinterv2.php en lui passant par l'url les parametres localisation et nom-->
<td width=200 height=35><a href="affinterv2.php?loc=<?php echo $Donnees['Localisation']; ?>&nom=<?php echo $Donnees['NomAff']; ?>">Voir les intervenants</a></td>
</tr>
<?php
//$_SESSION['NomAff']=$Donnees['NomAff'];
}
?>
</table>
</form>
</body>
</html> 


et affinterv2.php

<html>
<body>
<form action='affinterv.php' method='POST'>
<?php
if(issset($_GET['loc'])) {
	$localisation=$_GET['loc'];
}
if(issset($_GET['nom'])) {
	$nomAff=$_GET['nom'];
}
$user="root";
$host="localhost";
$bdd="terawatt";
mysql_connect($host,$user) or die("Erreur de connexion au serveur SQL");
mysql_select_db($bdd);

$sql="SELECT Localisation, NomAff, Adresse, Etat FROM affaire WHERE Localisation='$localisation' AND NomAff='$nomAff';";
$list=mysql_query($sql) or die("Erreur de la requête SQL");
$Donnees = mysql_fetch_array($list);

echo $Donnees['NomAff'];
?>
</form>
</body>
</html>

Ajouter un commentaire
Réponse
+0
moins plus
Encore merci de votre réponse qui est elle aussi tres efficace, seulement je ne comprends pas pourquoi du coup on parle de $_GET dans affinterv2.php alors que resultaff.php contient un formulaire avec $_POST ??
Ajouter un commentaire
Réponse
+0
moins plus
on parle de $_GET dans affinterv2.php alors que resultaff.php contient un formulaire avec $_POST

parce que le script est appelé non pas par le <formulaire mais par le lien et on récupére l'info dans l'URL de ce lien
Ajouter un commentaire
Réponse
+0
moins plus
Ok ok je vois, bah je te remercie encore une fois Alain, et te souhaite une bonne soirée.

En te disant peut etre a une prochaine ^^, surement meme je pense.



Merci beaucoup de ton aide et de ton efficacité :)
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour, encore moi, j'aurais besoin d'un eclaircissement sur le code ajax que tu m'as donné, les "id_lire", et "id_ecrire" sont bien à remplacer par les id de chaque liste ?? Et "url", par reponsePhpAjax.php( dans ton exemple) c'est bien ça ? ou par la nom de la page dans laquelle il y a ce code ??

Merci
Ajouter un commentaire
Réponse
+0
moins plus
En effet ça marche beaucoup mieux :) J'avoue avoir quelques difficultés à comprendre l'ajax et tes conseils et explications m'aident beaucoup !

Merci encore
ReS3t - 8 mars 2010 à 11:28
J'ai trouvé.... =D
qq - 18 sept. 2010 à 16:26
Moi j'ai script ajax telecharger pour liste liée, le dexieme niveau depend du premier niveau mon probleme c'est que lorsque je choisie valeur dans le premier champ le deuxieme niveau reste vide.

Comment faire pour que je losrque je choisie valeur dans premier niveau j'aurais resultat?
Ajouter un commentaire
Réponse
+0
moins plus
Je pensais encore à autre chose, si jamais dans ma deuxieme liste au lieu qu'elle ne s'affiche qu'au moment d'avoir fait un choix dans la premiere. Si elle pouvait s'afficher directement en ayant le choix de tous les nom d'affaires et qu'apres choix, le résultat de la liste 1 s'applique, même si l'on en a pas plus vraiment besoin.
Comment je dois procéder, parce qu'en remplaçant le div par select, cela m'affiche une liste vide donc et surtout qui ne prends pas la nouvelle liste qui est appelée (ce qui est normal ^^). Ou alors changer la forme sous laquelle se présente la requête appelée ???
qq - 21 sept. 2010 à 20:58
Bonjour,

je suis entrain d'integrer liste liée comportants les champs suivants:

region,departement et ville mon probleme c'est si je choisis n'importe quelle region le champ departement reste vide et meme bien sur champ ville. J'ai cette fonction qui ne retourne pas resultat ça ce que j'ai remarquer, je sais pas si sa rentre a la structure de la bd alors que j'ai fait les champs selon les requetes select, et j'ai pas bien compris le $id c quoi c'est en ajax
je vais vous donner ma fonction qui ne retourne pas resultat

public function getRegionById($id)
{
$prepare = $this->prepare('SELECT region_id, region_name
FROM region
WHERE region_id = "'.$id.'"');
$prepare->execute();
$region = $prepare->fetchAll();

return $region;
}

merci d'avance
qqq - 13 oct. 2010 à 13:14
Bonjour,

je veux integrer un dossier contenant liste liee en ajax mais je sais comment l'integrer sachant que ma liste liee est contenue dans un dossier, lorsque je clique sur ce dossier la liste liee s'affiche mais je sais pas comment mettre cette liste dans dans une page php, c-à-d comment je peux appeler ce dossier, qui contient tout les fichiers pour faire liste liée, dans une page php

prière m'aider
scs - 29 déc. 2010 à 12:40
Bonjour
je veux savoir comment ajouter un quatrième niveau dans une liste liée comme l'exemple pubilée de region, departement, ville
prière m'aider
Ajouter un commentaire
Ce document intitulé « [ajax] listes liées » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook
[ajax] listes liées - page 2