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] Alimenter une 2ème liste déroulante liée à la première par xAjax


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Par défaut [AJAX] Alimenter une 2ème liste déroulante liée à la première par xAjax
    Bonjour à tous.
    J'essaie de faire fonctionner le logiciel tutoriel trouvé sur le forum en Xajax pour moi comprendre son fonctionnement, malheureusement je suis face à une erreur que je n'arrive pas à solutionner.
    Vu les énormes possibilités offertes par xAjax, quelqu'un peut-il m'aider?


    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
    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
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
            <head>
                    <title>Page xajax</title>
                    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
    		  <?php $xajax->printJavascript("./xajax_js"); /* Fonction qui affiche le javascript*/  ?>
     
            </head>
     
     
    <body>
      <div id="block"></div>
     
     
    <?php
     // information pour la connection à le DB
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'test';
     
    // connection à la DB
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
    // requête SQL qui compte le nombre total d'enregistrement dans la table et qui
    //récupère tous les enregistrements
       $select = 'SELECT categorie FROM categories ORDER BY `categorie';
       $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
     
    //  début de la liste 
     
    echo "<form action ='EssaiMilleTrois.php' method='post'>
    <table ><tr><td> choisissez une categorie 
          <select id='liste_cat' name='categorie' > "; 
     //  }     
        while ($row=mysql_fetch_array($result)) 
    	{
    	echo"<option> $row[0]</option>";
    }
      echo"</select></td></tr></table></form>"; 
     
     echo "<form action ='EssaiMilleTrois.php' method='post'>
    <table ><tr><td> choisissez une sous-catégorie 
          <select id='liste_sous_cat' name='sous_categorie' > "; 
     
      echo"</select></td></tr></table></form>"; 
    ?> 
     
    </body>
    </html>
    <?php
     
    require_once('./xajax_core/xajax.inc.php');
    function SelectSouscat($catid)
    {
    $options="";
    // creer un nouvel objet permettant d'envoyer une réponse au côté client
    $objResponse=new xajaxResponse();
    //on selectionne les sous-catégorie en fonction de l'id de la catégorie mère
     $sql="SELECT id,titre FROM souscategories WHERE id_cat_mere= ".$catid."";
    $req=mysql_query($sql);
    while($souscat=mysql_fetch_array($req))
    {
    //on place toutes les sous-catégories dans des options valables pour la liste SELECT
     
     $options =".$souscat['titre'].";
    }
    //L'ajax remplacera le innerHTML(html interieur) de la liste_souscat pour y mettre $options
    $objResponse->addAssign("liste_souscat","innerHTML",$options);
    // envoie la réponse en XML
    return $objetResponse->getXML();
    //nous allons instancier un nouvel objet xajax
    $xajax=new xajax();
    // remarquez que l'on peut passer en mode debug en decommentant la ligne suivante
    //$xajax->dabugOn();
    // Faire enregistrer la fonction que nous venons de créer
    $xajax->registerFunction("SelectSouscat");
    //maintenant on commence à prendre en compte les demandes sur la page web avec processRequests() 
    //*/ C'est une fonction qui va se charger de générer le Javascript à partir des données que l'on a fournies à xAjax.
    //En fait, elle va ordonner à xAjax de générer le Javascript de notre page une fois que nous lui aurons fourni toutes les informations qui lui sont nécessaires (nom des fonctions, etc.).
    $xajax->processRequests();
    //Ça l'est : disons que nous avons appris là le strict minimum à mettre dans une page pour exécuter une application AJAX. À chaque fois que vous utilisez xAjax, il faut créer votre objet xajax(), et appeler les méthodes nécessaires (processRequest() et printJavascript()). Retenez bien cela, c'est indispensable !
     
    onChange (xajax_SelectSouscat);
     
    }
    //le code ci-dessos va remplacer ce qu'il y a dans mon div (c'est ce que signifie innerHTML), dont l'id est liste_souscat, par $options 
    // Assign est nécessaire pour modifier le contenu 
    // l'ajax remplacera le innerHTML(html intérieur) de la liste_souscat pour y mettre:
    $options $objResponse->addAssign("liste_soucat","innerHTML",$options);
    // envoie la répose en XML
    return $objResponse->getXML();
    }
    $xajax=new xajax();
    //$xajax->debugOn();
    $xajax->registerFunction("SelectSouscat");
    $xajax->processRequests();
    <?php
    return $reponse;
    ?>
     
    ?> Test de select dynamique printJavascript("../")?> Test se select dynamique
    Choisissez une catégorie
    <?php
    $sql="SELECT id_categorie, categorie FROM categories ORDER BY categorie ASC";
    $req=mysql_query($sql) or die(mysql_error());
    while($cat=mysql_fetch_array($req))
    {
    echo".$cat['categorie'].";
    }
    ?>
    Au départ j'avais toujours une erreur à cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $sql="SELECT id,titre FROM souscategories WHERE id_cat_mere= ".$catid."";
    J'ai corrigé et plus d'erreur mais à la ligne plus bas. Mais est-ce boncar je doute pour l'erreur suivante?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $options =".$souscat['titre'].";
    Maintenant , j'ai l'erreur suivante et je ne vois vraiment pas d’erreur à cette ligne:
    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\EasyPHP-5.3.3.1\www\infopub\EssaiMilleTroisDuplica.php on line 68
    Bref je patauge et je serais reconnaissant à une âme de bonne volonté
    Sincères remerciements
    Claudine

  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
    Bonjour,

    Je ne connais pas quelle bibliothèque xajax mas tu as une erreur php à cette ligne
    $options $objResponse->addAssign("liste_soucat","innerHTML",$options);
    D'ailleurs ce message d'erreur est du coté php mais pas javascript.

    A+.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 293
    Par défaut
    Merci Andry.aime, il 's'agit en effet de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $objResponse->addAssign("liste_soucat","innerHTML",$options);
    Cependant, j'ai toujours le même code d'erreur sur la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $options=".$souscat['titre'].";
    Parse error:
    syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\EasyPHP-5.3.3.1\www\infopub\EssaiMilleTroisDuplica.php on line 68
    Voyez-vous une erreur? Je n'ai fait que copier/coller le code entier.
    Pouvez-vous m'expliquer expecting......
    Claudine

Discussions similaires

  1. Réponses: 16
    Dernier message: 27/08/2011, 17h32
  2. Réponses: 10
    Dernier message: 23/03/2009, 23h01
  3. ajax, php et 3 listes déroulantes liées
    Par jfox dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/04/2008, 14h13
  4. [AJAX] Listes déroulantes liées avec Ajax
    Par paupiette dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/08/2006, 16h51
  5. Griser 1 liste déroulante liée à une autre, pb de concaténat
    Par linou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2005, 16h45

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