IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] 2 select Onchange ajax


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 10
    Par défaut [AJAX] 2 select Onchange ajax
    Bonjour,
    j'ai un projet de fin d'etude un site web en cour de realisation ,dans la partie administration de ce site dans l'un de ces page je veut afficher 2 select dynamique liee dans l'un qui contient la liste des filiere sporitve(volley ball,judo,foot ball) affichee de la table filiere et l'autre la liste des categorie(minim,cadee,junior,senior) selon le choix de la filiere de la table categorie pour afficher enfin les joueur ou l'entrenneur de cette categorie.
    je developpe avec php et sql.

    -- Structure de la table `filiere`
    --

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE `filiere` ( 
    `idfil` int(3) NOT NULL auto_increment, 
    `typefil` varchar(30) NOT NULL, 
    PRIMARY KEY (`idfil`), 
    UNIQUE KEY `typefil` (`typefil`) 
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=116 ;

    -- Structure de la table `galerie`
    --

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE `categorie` (
      `idcat` int(3) NOT NULL auto_increment,
      `nomcat` varchar(30) NOT NULL,
      `typefil` varchar(30) NOT NULL,
      PRIMARY KEY  (`idcat`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=42 ;

    --


    j'ai suivit un tutorial sur le net mais malheureusement j'ai pas reussi a faire cette astuce car je ne maitrise pas bien la technologie ajax.
    voici le code de deux page .php

    select.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <html> 
    <head> 
    <title>liste</title> 
    <script type='text/javascript'> 
    function getXhr(){ 
    var xhr = null; 
    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; 
    } 
    return xhr; 
    } 
    /** 
    * Méthode qui sera appelée sur le click du bouton 
    */ 
    function go(){ 
    var xhr = 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('categorie').innerHTML = 
    leselect; 
    } 
    } 
    // Ici on va voir comment faire du post 
    xhr.open("POST","ajax.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 de l'auteur 
    sel = document.getElementById('filiere'); 
    filiere = sel.options[sel.selectedIndex].value; 
    xhr.send("filiere="+filiere); 
    } 
    </script> 
    </head> 
    <body> 
    <form > 
     
     
     
    <fieldset style="width: 500px"> 
    <legend>Liste liées</legend> 
    <label>Auteurs</label> 
    <select name="filiere" id="filiere" onchange="go()"> 
    <option value='-1'>Aucun</option> 
    <?php 
    $typefil=$_POST['filiere']; 
    mysql_connect("localhost","root",""); 
    mysql_select_db("asptt"); 
    $res = mysql_query("SELECT * FROM filiere "); 
    while($row = mysql_fetch_assoc($res)){?> 
    <option ><?php echo $row['typefil']; ?></option><?php }?>	
     
    </select> 
    <label>categorie</label> 
    <div id="categorie"> 
    <select name="categorie"> 
    <option value="-1">Choisir une filiere</option> 
    </select> 
    </div> 
    </fieldset> 
    </form> 
    </body> 
    </html>


    ajax.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php 
    echo "<select name='categorie' id='categorie'>"; 
    if(isset($idfil)) 
    { 
    mysql_connect("localhost","root",""); 
    mysql_select_db("asptt"); 
    $res = mysql_query("SELECT idcat,nomcat FROM categorie 
    WHERE typefil='$filiere'")or die(mysql_error()); 
    while($row = mysql_fetch_assoc($res)){?> 
     
    <option value="<?php echo $row['idcat'] ;?>"><?php echo $row['nomcat'];?></option> 
    <?php } 
    } 
    echo "</select>"; 
    ?>


    s'il y a quelqu'un qui peut m'aider et merci d'avance.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    tu postes xhr.send("filiere="+filiere); la variable filiere alors que tu ne le récupère pas dans ajax.php.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if(isset($_POST['filiere']))
    {$filiere=$_POST['filiere'];
    mysql_connect("localhost","root",""); 
    mysql_select_db("asptt"); 
    $res = mysql_query("SELECT idcat,nomcat FROM categorie 
    WHERE typefil='$filiere'")or die(mysql_error()); 
    while($row = mysql_fetch_assoc($res)){?> 
     
    <option value="<?php echo $row['idcat'] ;?>"><?php echo $row['nomcat'];?></option> 
    <?php } 
    } 
    echo "</select>"; 
    ?>

  3. #3
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 10
    Par défaut
    pardent mais ca marche pas,est ce que tu as d'autre solution et merci d'avance.

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Les options n'ont pas de value
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="<?php echo $row['typefil']; ?>"><?php echo $row['typefil']; ?></option>

  5. #5
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 10
    Par défaut
    slt
    mon ami andry.aime merci pour ton effort et ton aide ,mais malheureusement ca marche pas.je sait pas c'est quoi le probleme,est ce que tu peut faire une autre verification de mon code ou si tu as une autre solution car je suis bloqué j'ai rien a faire car franchement je ne maitrise pas la technologie ajax.
    merci d'avance.
    cordialement.

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut, tu n'as pas ouvert la balise <select>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <?php if(isset($_POST['filiere']))
    {$filiere=$_POST['filiere'];
    mysql_connect("localhost","root",""); 
    mysql_select_db("asptt"); 
    $res = mysql_query("SELECT idcat,nomcat FROM categorie 
    WHERE typefil='$filiere'")or die(mysql_error()); 
    echo '<select id="IdSelect">';
    while($row = mysql_fetch_assoc($res)){?> 
     
    <option value="<?php echo $row['idcat'] ;?>"><?php echo $row['nomcat'];?></option> 
    <?php } 
    } 
    echo "</select>"; 
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Actualiser plusieurs selects communs ajax
    Par throrin19 dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 13/01/2009, 14h42
  2. php et ajax : actualisation select si retour sur page
    Par pascale86 dans le forum Langage
    Réponses: 4
    Dernier message: 08/02/2008, 20h11
  3. [AJAX] champ select verifiant en live si un fichier existe
    Par amans dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/11/2007, 10h04
  4. Initialisation Select avec Ajax (php)
    Par VooDooNet dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/08/2007, 09h45
  5. [AJAX] enchainement de script ajax sur <select>
    Par lodan dans le forum Général JavaScript
    Réponses: 62
    Dernier message: 16/09/2006, 19h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo