begin process at 2012 05 28 15:07:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Ajax et Listes liees


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ajax et Listes liees

lundi 9 janvier 2006 à 09:33:56 | Ajax et Listes liees

AlexKing

Bonjour,

je cherche a faire quelque chose avec les scripts que j'ai pu trouver sur ce site mais mes connaissances limitees en javascript m'empechent d'avancer.

Je m'explique, j'ai un formulaire avec pleins de listes deroulantes. Ces listes sont alimentees par une fonction qui va chercher les elements dans une table. Par exemple j'ai une table "Matiere" avec comme champs et données:
***************
*   id  *    Matiere *
*   1   *   Nubuc   *
*  2    *   Plastic   *
*   3   *    Cuir     *
***************

Et une table de couleur:
***************
*   id  *    Couleur *
*   1   *   Blanc     *
*  2    *   Bleu       *
*   3   *    Rouge   *
***************

Et la table qui les lie "matiereLcouleur:
*************************
*   id_Matiere  *    id_Couleur *
*          1          *            2       *
*          1          *            3       *
*          2          *            1       *
*          2          *            2       *
*************************

Vous l'aurez compris quand une matiere et selectionnée je voudrais que la liste de couleur qui lui est associee ne contiennent QUE les couleurs de la matiere.

Mon probleme est que j'ai 6 listes de matiere dans mon formulaire et  autant de listes de couleur. Et ce n'est pas compatible avec une script trouve ici:
http://phpcs.com/code.aspx?id=25832
ou encore ici:
[ Lien ] (c'est le meme).

Pourriez vous m'aider a mettre en place ce truc, a moins que ce ne soit pas faisable.

Par avance merci.

Alex
lundi 9 janvier 2006 à 09:44:32 | Re : Ajax et Listes liees

malalam

Administrateur CodeS-SourceS
Hello,

ce n'est pas difficile, tu appelles tes scripts pour charger les listes sur le onchange de la liste précédente.
Donne nous un début de code...on essayera de t'aider en fonction.
lundi 9 janvier 2006 à 10:14:46 | Re : Ajax et Listes liees

frop01

Membre Club
Bonjour,

Ce script est tutorial simple pour expliquer le fonctionnement de deux liste liées.

Pour modifier le script à ce qu'il utilise plusieurs listes déroulantes.
il faut modifier la fonction sendData dans la partie JS comme suit :

<script type="text/javascript">
    /**
     * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
     */     
    function sendData(param, page, divpart)
    {
     
        if(document.all)
        {
            //Internet Explorer
            var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
        }//fin if
        else
        {
            //Mozilla
            var XhrObj = new XMLHttpRequest();
        }//fin else

        //définition de l'endroit d'affichage:
         var content = document.getElementById(divpart);
               
        XhrObj.open("POST", page);

        //Ok pour la page cible
        XhrObj.onreadystatechange = function()
        {
            if (XhrObj.readyState == 4 && XhrObj.status == 200)
                content.innerHTML = XhrObj.responseText ;
        }

        XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        XhrObj.send(param);
       
    }//fin fonction SendData
 
    </script>



Explication : on a ajouté une variable divpart qu'on va utilisé pour définir la partie à être modifier dynamiquement.

ensuite chaque liste est identifiée par un div. exemple

<div id="liste2">
Liste2
</div>

<div id="liste3">
Liste3
</div>

<div id="liste4">
Liste4
</div>
 
etc ...

et pour chaque liste on ajoute l'événement OnChange pour appeller la page de chargement depuis le serveur pour modifier dynamiquement la liste suivante exemple :

voici la première liste qui modifie la deuxième liste
<select size="1" name="liste1" OnChange="sendData('id='+this.value,'modifliste2.php','liste2')">
</select>

Voici la deuxième liste qui va modifié la troisième:

<select size="1" name="liste2" OnChange="sendData('id='+this.value,'modifliste3.php','liste3')">
</select>

etc...

et tu n'aura à créer les pages modifliste2.php, modifliste3.php, etc...

Cela dit tu peux optimisé le code à ce qu'il utilise uniquement modifliste.php pour toute les liste en utilisant des tests.

Bonne continuation.
PS: Si votre problème est résolu, prière de bien vouloir clôturer votre message par une réponse acceptée !
http://perso.wareteam.com
http://freelance.wareteam.com

lundi 9 janvier 2006 à 10:22:54 | Re : Ajax et Listes liees

AlexKing

Super, merci ca me permet de bien avancer deja.

est ce que je peux aussi utiliser:
<select size="1" name="liste2" OnChange="sendData('id='+this.value,'modifliste.php?liste=liste2','liste2')">
</select>
?

Bon et bien maintenant je n'ai plus qu'a trouver un truc pour ma structure de table j'ai cette ##### de table liee a prendre en compte.

Si quelqu'un a une idee au passage.

Je previens quand j'ai trouve!

Merci encore

Alex
lundi 9 janvier 2006 à 10:32:22 | Re : Ajax et Listes liees

frop01

Membre Club
Oui c'est possible mais il faut modifier tout JS+PHP à ce qu'il utilise la fonction $_GET

Mais c'est plus simple de passer les variables par "param" (id=1&liste=liste2)

ex:

OnChange="sendData('id='+this.value+'&liste=liste2','modifliste.php')">

et n'oublies pas le divpart c'est obligatoire.

OnChange="sendData('id='+this.value+'&liste=liste2','modifliste.php', 'liste2')">

Bonne continuation.

PS: Si votre problème est résolu, prière de bien vouloir clôturer votre message par une réponse acceptée !
lundi 9 janvier 2006 à 14:27:04 | Re : Ajax et Listes liees

AlexKing

Réponse acceptée !

Ha oui pk pour la modif.

C'est bon tout est en place. Pour ma requete avec la table de liaison, j'ai utilise ceci:
 $req = "SELECT id_Couleur FROM dessusLcouleur WHERE id_DessusMatiere=$champs1";
 $res = MYSQL_QUERY($req);
 $i = array();
 $j=0;
 $in = "";
 while($r = mysql_fetch_array($res)){
  $i[$j] = $r[0];
  $j++;
 }
 $in = implode(",",$i);

 $requete = "SELECT Couleur FROM couleur WHERE id IN ($in)";
 $resultat=MYSQL_QUERY($requete);
 $compteur=MYSQL_NUM_ROWS($resultat);

Ca n'a jamais voulu prendre:
 $req = "SELECT id_Couleur FROM matiereLcouleur WHERE id_DessusMatiere=$champs1";
 $res = MYSQL_QUERY($req);
 $r = mysql_fetch_array($res) // Ces 2 lignes la ne prennent pas
 $in = implode(",",$r); // et la!

 $requete = "SELECT Couleur FROM couleur WHERE id IN ($in)";
 $resultat=MYSQL_QUERY($requete);
 $compteur=MYSQL_NUM_ROWS($resultat);

Merci bien en tous cas.

Alex



Cette discussion est classée dans : table, couleur, id, matiere, listes


Répondre à ce message

Sujets en rapport avec ce message

problème de mise à jour de base de données [ par rildspael ] Ben en fait maintenant j'ai refait ce code, je me suis concentré, j'ai tout analysé mais rien ne marche encore et je ne comprends pas : le voici :Donc Sélectionner les lignes différentes entre deux tables [ par Mikemadest ] Bonjour,J'ai cherché sans trouver de réponse à mon problème,ce qui m'amène à vous poser cette question !D'avance je m'excuse si j'ai raté la solution Afficher une ligne d'une table mysql [ par Alferox ] Bonjours,bon bin une question de base toute con.Je voudrais afficher uniquement la ligne qui port l'id 2 d'une table. Il n'y a pas plus simple que de [MySQL] Sauvegarde d'un tableau dans une table [ par cedvoyage ] Bonjour,J'aimerais sauvegarder un tableau (multimensionnel) dans ma base MySQL.Or quand j'essaye je n'ai que 'Array' de marquer dans le champ de ma ta selectionner une id dans une base de données [ par tomatokatchup ] Voila mon probleme :J'ai créer une table qui se contient les réultats d'un formulaire remplis par les visiteurs de mon site. A chaque validation du fo requete balaise [ par eax ] salutg un pb avec une requete mysql qui affiche les champs d'une table A (table des photos) et d'une table B (table des comentaires), je veux afficher pb d'affichage de table [ par nikos283 ] Bonjour, J'ai un probleme pour afficher une table, tout dabord voici les tables:annuaire(id_annuaire, nom_annuaire)centres(id_centres,nom_centres)serv debutant probleme de session! [ par jimmy69 ] bonjour a tous,voila je debute en php et je suis en train de realiser un espace menbresou ceux ci peuvent poster des news un truc tout simple!j'ai don CREATE TABLE images ????? [ par spike911 ] Je c'est ce surment un question newbie mais c'est pas grave je me lancer P"S je ne connais pas tres bien le PHPQuoi sa veu dire sa:CREATE TABLE images Trier une table avec le contenu d'une variable [ par bullo95 ] Bonjour!! Voila mon probleme premiere page, un petit moteur de recherche par mots clefs. qui va a la page 2 page 2 la liste de tt les article compten


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,435 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales