[ajax] listes liées
Fermé
redwire
Messages postés
254
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
6 août 2008
-
17 sept. 2006 à 15:16
Denis - 1 mars 2012 à 17:21
Denis - 1 mars 2012 à 17:21
36 réponses
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 ???
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 ???
Par contre je n'arrive pas a faire en sorte que si je choisis directement dans ma seconde liste, le résultat de la premiere en soit définit automatiquement ??
J'ai essayé de faire comme suit :
- créer une autre page "reponseAjax" pour cette requête
- j'ai bien mis l'espace <select> de la premiere liste dans un <div> afin que la liste soit remplacée par le résultat en fonction du choix dans la seconde liste
et j'ai regardé le script, ne serait ce pas dans ce code la que je dois changer quelque chose ???
J'ai essayé de faire comme suit :
- créer une autre page "reponseAjax" pour cette requête
- j'ai bien mis l'espace <select> de la premiere liste dans un <div> afin que la liste soit remplacée par le résultat en fonction du choix dans la seconde liste
et j'ai regardé le script, ne serait ce pas dans ce code la que je dois changer quelque chose ???
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
8 mars 2010 à 12:48
8 mars 2010 à 12:48
en gros ce que tu veux
liste 1
liste 2 tous les enregistrements
qd choix dans liste 1 ça réaffiche la liste 2 mais avec seulement ceux concernés par la liste1
par contre je ne comprend pas trop ce que tu veux faire dans l'autre sens choix liste 2 vers affich liste 1
liste 1
liste 2 tous les enregistrements
qd choix dans liste 1 ça réaffiche la liste 2 mais avec seulement ceux concernés par la liste1
par contre je ne comprend pas trop ce que tu veux faire dans l'autre sens choix liste 2 vers affich liste 1
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
8 mars 2010 à 13:37
8 mars 2010 à 13:37
pour le premier cas
dans ta page tu mets dans le div qui va recevoir la réponse ajax une liste deroulante complete avec une boucle while qui va afficher tous les chargés d'affaire
ajax viendra ensuite suite a un choix dans la liste 1 venir écraser cette liste et la remplacer par une qui correspondra seulement au choix fait dans la 1
dans ta page tu mets dans le div qui va recevoir la réponse ajax une liste deroulante complete avec une boucle while qui va afficher tous les chargés d'affaire
ajax viendra ensuite suite a un choix dans la liste 1 venir écraser cette liste et la remplacer par une qui correspondra seulement au choix fait dans la 1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'avoue ne pas voir ce qui cloche, j'ai essayé de plusieurs maniere mais le mieux que j'ai pu avoir est une liste vide...
Et maintenant j'ai une parse error a la ligne 19.. :/
1 <?php
2 session_start();
3 ?>
5 <?php
7 $user="root";
8 $host="localhost";
9 $bdd="terawatt2";
10 mysql_connect($host,$user) or die("Erreur de connexion au serveur SQL");
11 mysql_select_db($bdd);
13 $NomAff=$_SESSION['Localiser'];
15 $sql_local="SELECT * FROM affaire WHERE nomAffaire='.$NomAff[nomAffaire].' AND villeAffaire='.$NomAff[villeAffaire].';";
16 $list_local=mysql_query($sql_local) or die("Erreur de connexion au serveur SQL 4");
17 $Nom_local='<select>';
18 $Donnees_local = mysql_fetch_array($list_local)
19 while ($Donnees_local = mysql_fetch_array($list_local))
20 {
21 $Nom_local.='<option value='.$Donnees_local['Localisation'].'>'.$Donnees_local['Localisation'].'</option>';
22 }
23 $Nom_local.='</select>';
24 echo $Nom_local;
25 ?>
Et a part la requête qui pourrait peut etre ne pas aller, je ne vois pas d'ou vient le probleme :/
A moins qu'il ne faille modifier le script ?
Et maintenant j'ai une parse error a la ligne 19.. :/
1 <?php
2 session_start();
3 ?>
5 <?php
7 $user="root";
8 $host="localhost";
9 $bdd="terawatt2";
10 mysql_connect($host,$user) or die("Erreur de connexion au serveur SQL");
11 mysql_select_db($bdd);
13 $NomAff=$_SESSION['Localiser'];
15 $sql_local="SELECT * FROM affaire WHERE nomAffaire='.$NomAff[nomAffaire].' AND villeAffaire='.$NomAff[villeAffaire].';";
16 $list_local=mysql_query($sql_local) or die("Erreur de connexion au serveur SQL 4");
17 $Nom_local='<select>';
18 $Donnees_local = mysql_fetch_array($list_local)
19 while ($Donnees_local = mysql_fetch_array($list_local))
20 {
21 $Nom_local.='<option value='.$Donnees_local['Localisation'].'>'.$Donnees_local['Localisation'].'</option>';
22 }
23 $Nom_local.='</select>';
24 echo $Nom_local;
25 ?>
Et a part la requête qui pourrait peut etre ne pas aller, je ne vois pas d'ou vient le probleme :/
A moins qu'il ne faille modifier le script ?
J'ai enlevé la ligne 18, que j'avais pas vu pour le coup, et du coup j'ai une liste de vide sans erreur ni rien... :/
Je comprends vraiment pas.. :/
Je comprends vraiment pas.. :/
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
9 mars 2010 à 15:33
9 mars 2010 à 15:33
un petit oubli de ; ligne 18
sinon pourquoi utilises tu les sessions alors que tu peux très bien passer plusieurs valeurs par Ajax ?
sinon pourquoi utilises tu les sessions alors que tu peux très bien passer plusieurs valeurs par Ajax ?
<?php session_start(); ?> <?php $user="root"; $host="localhost"; $bdd="terawatt2"; mysql_connect($host,$user) or die("Erreur de connexion au serveur SQL"); mysql_select_db($bdd); $NomAff=$_SESSION['Localiser']; $sql_local="SELECT * FROM affaire WHERE nomAffaire='.$NomAff[nomAffaire].' AND villeAffaire='.$NomAff[villeAffaire].';"; $list_local=mysql_query($sql_local) or die("Erreur de connexion au serveur SQL 4"); $Nom_local='<select>'; $Donnees_local = mysql_fetch_array($list_local); //il te manqait le ; while ($Donnees_local = mysql_fetch_array($list_local)) { $Nom_local.='<option value='.$Donnees_local['Localisation'].'>'.$Donnees_local['Localisation'].'</option>'; $Nom_local.='</select>'; echo $Nom_local; ?> ou autre solution qui t'affichera toute la liste 1 mais avec la ville selected <?php $user="root"; $host="localhost"; $bdd="terawatt2"; mysql_connect($host,$user) or die("Erreur de connexion au serveur SQL"); mysql_select_db($bdd); $NomAff=$_SESSION['Localiser']; //recherche de la ville en fct du choix liste 2 $sql_local="SELECT * FROM affaire WHERE nomAffaire='.$NomAff[nomAffaire].' AND villeAffaire='.$NomAff[villeAffaire].';"; $list_local=mysql_query($sql_local) or die("Erreur de connexion au serveur SQL 4"); //il doit y en avoir qu'une ? $donnee_loc=mysql_fetch_array($list_local); $localisation=$donnee_loc['Localisation']; //la ville //on genere la liste entière avec un select sur la ville ci dessus $sql2="SELECT * FROM affaire"; $result2=mysql_query($sql2) or die("Erreur de connexion au serveur SQL 4"); $liste='<select>'; while ($donnees_liste = mysql_fetch_array($result2)) { $liste.='<option value='.$donnees_liste['Localisation'].''; if($donnees_liste['Localisation'] == $localisation){ $liste.=' selected';} //la ville est preselectionnée $liste.= ' >'.$donnees_liste['Localisation'].'</option>'; $liste.='</select>'; echo $liste; ?>
Oui en fait la ligne 18 etait inutile du coup je l'ai virée, et j'ai essayé les session, parce qu'avec post je n'avais pas de resultat non plus donc c'etait plus pour voir que par interet.
Par contre j'ai essayé de reprendre et modifier ton code à ma guise seulement il m'affiche tout le temps une "parse error" a la derniere ligne, alors que tout est niquel :/
Ou sinon si j'enleve le morceau de code du while a la fin, il me dit que la variable n'est pas définit, ainsi que les occurences demandées (undefined index "blabla").
Je vois aussi que dans le script que tu as fais il y a :
if (!http_request)
{
alert('Abandon :( Impossible de créer un objet XMLHTTP');
return false;
}
//Affectation de la fonction appelée quand on recevra la réponse
http_request.onreadystatechange = function()
{
traitementReponse(http_request,id_ecrire);
}
// Lancement de la requête
http_request.open('POST', url, true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
obj=document.getElementById(id_lire); //Lecture de la valeur selectionnée dans la liste "Localisation"
data="Localisation="+obj.value; //Envoi de la valeur au script PHP en 'POST'
http_request.send(data);
}
Par contre j'ai essayé de reprendre et modifier ton code à ma guise seulement il m'affiche tout le temps une "parse error" a la derniere ligne, alors que tout est niquel :/
Ou sinon si j'enleve le morceau de code du while a la fin, il me dit que la variable n'est pas définit, ainsi que les occurences demandées (undefined index "blabla").
Je vois aussi que dans le script que tu as fais il y a :
if (!http_request)
{
alert('Abandon :( Impossible de créer un objet XMLHTTP');
return false;
}
//Affectation de la fonction appelée quand on recevra la réponse
http_request.onreadystatechange = function()
{
traitementReponse(http_request,id_ecrire);
}
// Lancement de la requête
http_request.open('POST', url, true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
obj=document.getElementById(id_lire); //Lecture de la valeur selectionnée dans la liste "Localisation"
data="Localisation="+obj.value; //Envoi de la valeur au script PHP en 'POST'
http_request.send(data);
}
Désolé je n'arrive pas a trouver pour editer le post, mais cela ne viendrait pas de là (de ce morceau de script) ?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
9 mars 2010 à 16:36
9 mars 2010 à 16:36
quand php indique une erreur en fin de script c'est qu'il manque une }
c'était bien le cas:
c'était bien le cas:
<?php $user="root"; $host="localhost"; $bdd="terawatt2"; mysql_connect($host,$user) or die("Erreur de connexion au serveur SQL"); mysql_select_db($bdd); $NomAff=$_SESSION['Localiser']; //recherche de la ville en fct du choix liste 2 $sql_local="SELECT * FROM affaire WHERE nomAffaire='.$NomAff[nomAffaire].' AND villeAffaire='.$NomAff[villeAffaire].';"; $list_local=mysql_query($sql_local) or die("Erreur de connexion au serveur SQL 4"); //il doit y en avoir qu'une ? $donnee_loc=mysql_fetch_array($list_local); $localisation=$donnee_loc['Localisation']; //la ville //on genere la liste entière avec un select sur la ville ci dessus $sql2="SELECT * FROM affaire"; $result2=mysql_query($sql2) or die("Erreur de connexion au serveur SQL 4"); $liste='<select>'; while ($donnees_liste = mysql_fetch_array($result2)) { $liste.='<option value='.$donnees_liste['Localisation'].''; if($donnees_liste['Localisation'] == $localisation){ $liste.=' selected';} //la ville est preselectionnée $liste.= ' >'.$donnees_liste['Localisation'].'</option>'; } //il manquait cette accolade $liste.='</select>'; echo $liste; ?>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
9 mars 2010 à 16:46
9 mars 2010 à 16:46
concernant Ajax:
data="Localisation="+obj.value; //Envoi de la valeur au script PHP en 'POST'
http_request.send(data);
envoie la valeur selectionnée dans la liste2
et dans le script php appelé tu récupères par $nom_affaire=$_POST['Localisation'];
mais je n'y a -t-il pas de confusion entre nom affaire et localisation affaire ?
data="Localisation="+obj.value; //Envoi de la valeur au script PHP en 'POST'
http_request.send(data);
envoie la valeur selectionnée dans la liste2
et dans le script php appelé tu récupères par $nom_affaire=$_POST['Localisation'];
mais je n'y a -t-il pas de confusion entre nom affaire et localisation affaire ?
Non je ne pense pas qu'il y ait confusion seulement "Localisation" est non seulement une occurence de ma table AFFAIRE, mais aussi le nom de ma premiere liste c'est pour ça, je pensais que ça venait de la, et qu'il fallait aussi integrer ma deuxieme liste au script.
Merci de m'avoir appris ce que ça signifiait ^^ et ça me dit toujours que ce n'est pas définit... en parlant de : la seconde liste que j'ai reprise en POST, et de l'occurence villeAffaire
Merci de m'avoir appris ce que ça signifiait ^^ et ça me dit toujours que ce n'est pas définit... en parlant de : la seconde liste que j'ai reprise en POST, et de l'occurence villeAffaire
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
9 mars 2010 à 17:10
9 mars 2010 à 17:10
Si tu est inscript sur le forum tu dois pouvoir m'envoyer un mail en MP avec ton adresse, comme ça on pourra envoyer les scripts en pièce jointe.
Enfin si tu es ok pour ça
Enfin si tu es ok pour ça
vincent.roye
Messages postés
1
Date d'inscription
mercredi 28 avril 2010
Statut
Membre
Dernière intervention
28 avril 2010
28 avril 2010 à 07:36
28 avril 2010 à 07:36
Salut,
Vous pouvez lire mon post à ce sujet sur mon site, il y a un exemple de 3 listes liées et rafraichies avec Ajax.
http://www.vincentroye.com/?p=339
Continent -> Country -> City
Simple et intuitif ;)
Cordialement,
Vincent Roye.
Vous pouvez lire mon post à ce sujet sur mon site, il y a un exemple de 3 listes liées et rafraichies avec Ajax.
http://www.vincentroye.com/?p=339
Continent -> Country -> City
Simple et intuitif ;)
Cordialement,
Vincent Roye.
Bonjour
Je cherche désespérement à faire 3 listes liées à partir d'une base de donnée qui comporte les champs suivants :
marque, type, contenu et au final si on envoi que cela affiche tous les vehicules de la marque , type et contenu séléctionné
Voila si je pouvais avoir un peu d'aide et de votre temps
vincent.roye super ton site avec les 3 menu c'est exactement le principe que je recherche avec au final l'affichage des articles qui correspondent
Si une petite archive pouvait être mises à disposition ou transcrit :)
Merci d'avance
Je cherche désespérement à faire 3 listes liées à partir d'une base de donnée qui comporte les champs suivants :
marque, type, contenu et au final si on envoi que cela affiche tous les vehicules de la marque , type et contenu séléctionné
Voila si je pouvais avoir un peu d'aide et de votre temps
vincent.roye super ton site avec les 3 menu c'est exactement le principe que je recherche avec au final l'affichage des articles qui correspondent
Si une petite archive pouvait être mises à disposition ou transcrit :)
Merci d'avance
21 sept. 2010 à 20:58
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
13 oct. 2010 à 13:14
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
29 déc. 2010 à 12:40
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