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

Langage PHP Discussion :

[PHP / JavaScript] Requête sans changer de page qui ne marche pas


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 216
    Points : 159
    Points
    159
    Par défaut [PHP / JavaScript] Requête sans changer de page qui ne marche pas
    Bonjour à tous
    Je ne savais pas trop où poser cette question, mais allons-y pour PHP...
    J'ai essayé de faire une requête sans changer de page comme on peut si bien le faire depuis l'arrivée de certaines fonctions, mais hélas ça ne marche pas !

    Le but est que lorsque je choisis une catégorie dans ma première liste, ça sélectionne automatiquement les sous catégories associées.
    Un peu de code HTML pour illustrer tout cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Catégorie :
    		<select name="categorie" class="ButtonL" onchange="request(this.form)">
    			<option value="-">&nbsp;</option>
    			<option value="shopping">Shopping</option>
    			<option value="sante">Santé / Bien être</option>
    (etc...)
    		</select>
    Sous catégorie : <select name="sous_categorie" id="sous_categorie" class="ButtonL"></select>
    J'ai trouvé de l'aide sur un site, mais je n'arrive pas à faire marcher tout ça...
    J'utilise le code JS suivant :

    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
     
    <script language="javascript">
    var l1    = f.elements["categorie"];
    var l2    = f.elements["sous_categorie"];
    var index = l1.selectedIndex;
    if(index < 1)
       l2.options.length = 0;
    else {
       var xhr_object = null;
     
       if(window.XMLHttpRequest) // Firefox
          xhr_object = new XMLHttpRequest();
       else if(window.ActiveXObject) // Internet Explorer
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
       else { // XMLHttpRequest non supporté par le navigateur
          alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
          return;
       }
     
       xhr_object.open("POST", "species.php", true);
     
       xhr_object.onreadystatechange = function() {
          if(xhr_object.readyState == 4)
             eval(xhr_object.responseText);
       }
     
       xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
       var data = "categorie="+escape(l1.options[index].value)+"&form="+f.name+"&select=sous_categorie";
       xhr_object.send(data);
    }
    </script>
    Et le fichier species.php appelé est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    $query  = "SELECT `sous_categorie` FROM `pab_articles` WHERE `categorie` = '".$_POST["categorie"]."'";
    $query .= " ORDER BY `sous_categorie`";
    $result = @mysql_query($query);
     
    echo 'var o = null;';
    echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
    echo 's.options.length = 0;';
    while($r = mysql_fetch_array($result))
    	echo 's.options[s.options.length] = new Option("'.$r["sous_categorie"].'");';
     
    ?>
    Sachant que ma table pab_articles est en gros comme ceci :

    id_article , categorie , sous_categorie , ......


    Si quelqu'un sait m'aider... Là je sèche c'est pas évident du tout cette histoire de requête sans bouger...
    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 270
    Points : 163
    Points
    163
    Par défaut
    déjà tu devrais faire un alert(data) pour voir si les données que tu attends arrivent bien.

    ensuite, tu devrais décomposer.. mais je n'ai pas vu de référence pour la réinjection du code nouvellement arrivé dans ta page...

Discussions similaires

  1. [PHP 4] Appel fonction PHP sans changer de page web
    Par nicolas92c dans le forum Langage
    Réponses: 1
    Dernier message: 24/01/2015, 10h25
  2. Réponses: 11
    Dernier message: 04/02/2014, 12h57
  3. [AC-2003] Requête INSERT INTO sous VBA qui ne marche pas
    Par Shinoda00 dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/03/2011, 09h56
  4. Réponses: 6
    Dernier message: 18/11/2008, 18h31
  5. [php-mysql] requête qui ne marche pas....
    Par sanosuke85 dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/01/2006, 17h18

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