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] Erreur 404 listes déroulantes liées


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Par défaut [AJAX] Erreur 404 listes déroulantes liées
    Bonjour,

    Je réalise en ce moment un petit site (php/mysql), et je voudrais afficher une liste déroulante, et après avoir sélectionné un élément, je voudrais générer le contenu de la 2ème liste déroulante.

    Le sujet a déjà été traité de nombreuses fois, mais malgré mes nombreuses lectures, je ne parviens pas à trouver le problème.

    Voici mon code :

    VuePlanningAffichage.php
    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
     
    // 1er formulaire
    <select name="heure" onchange="generateSelect(this.value)">
        <?php
        $cpt = 0;
        for ($cpt = HEURE_DEBUT; $cpt < HEURE_FIN; $cpt++) {
            // Si la duree des soins n'excede pas le temps restant
            if ((HEURE_FIN - $cpt) >= $heure + $minute) {
                ?>
                <option value="<?php echo $cpt ?>"><?php echo $cpt ?></option>
                <?php
            }
        }
        ?>
        <div id="selectDiv"></div>
    </select>
     
     
    H
     
    <?php
    $heureMax = $cpt - 1;
    ?>
     
    // 2ème formulaire. (celui a générer)
    <select name="minute">
        <?php
        for ($cpt = 0; $cpt <= 55; $cpt = $cpt + 5) {
            //if() {
            ?>
            <option value="<?php echo $cpt ?>"><?php echo $cpt ?></option>
            <?php
            //}
        }
        ?>
    </select>
    ajouter.js
    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
    /** Méthode éffectuant une requête Ajax 
    @param url : path du fichier interrogé
    @param param : parametres a transmettre.
    **/
    XHR = function(url,param) {
        // Création et instanciation de l'objet XHR
        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; 
        }
        // Ouverture de la connexion avec le serveur 
        xhr.open('POST',url,true); 
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
        // Envoi de la requête XHR
        xhr.send(param);
     
        xhr.onreadystatechange = function() 
        {
            if (xhr.readyState < 4) 
            {	//Si la requête n'est pas terminé
            }
            else if (xhr.readyState == 4 && xhr.status==200) 
            {	//Si la requête s'est terminé avec succès
                XHRresult(xhr.responseText);
            }
            else if (xhr.readyState == 4 && xhr.status!=200) 
            {	//Si la requête s'est terminé sans succès
                alert("La requête n'a pas aboutit, un problème est survenu." + xhr.status);
            }
        };
        if(xhr.timeout)
        {
            xhr.timeout = 2000;
        }
        return xhr;
    }
     
    /** Methode analysant & traitant le xml retourné par la requête Ajax 
    @param response : reponse de la requête.
    **/
    XHRresult = function(response){
        var selectDiv = document.getElementById("selectDiv");
        if(selectDiv && response!="false")
        {	// Si l'element existe
            selectDiv.innerHTML = response;
        }
        else if(response=="false")
        {	// Si la réponse envoyé du fichier php est null
            alert("Le fichier PHP a répondu null!");
        }
    }
    /** Methode déclenché sur le onchange du premier select
    @param value : valeur selectionnée.
    **/
    generateSelect = function(value){
        XHR("./generateSelect.php","value=" + value);
    }
    generateSelect.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    	$response = null;
    	if(isset($_POST['value']))
    	{	//Si le paramétre value est existant
    		// On génére le select de réponse
    		//$response = "<select>[...]</select>";
                $response = 'ok';
    	}
    	//On test si la réponse n'est pas vide
    	echo ($response!=null)?$response:"false";
    ?>
    Quand je sélectionne un élément dans la première liste déroulante, l'erreur "La requête n'a pas aboutit, un problème est survenu." survient.
    J'ai affiché le statut, j'obtiens 404.

    Quelqu'un peut-il m'aider s'il vous plait.

    Merci.

  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,

    Erreur HTTP 404. Vérifie bien ton url si c'est bien valide, la casse, le chemin par rapport à la page qu'il l'appelle.

    A+.

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="heure" onchange="generateSelect(this.value)">
    Or, si on en croit ton code, cette fonction est déclarée comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XHR = function(url,param)
    (au passage, l'utilisation de var serait assez judicieux...)
    donc l'URL appelée correspond à this.value qui selon ton code PHP vaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $cpt = 0;
    for ($cpt = HEURE_DEBUT; $cpt < HEURE_FIN; $cpt++)
    il s'agit donc d'un compteur et pas vraiment d'une URL

    mais malgré mes nombreuses lectures, je ne parviens pas à trouver le problème.
    Jeter un oeil du côté du code HTML généré dans le navigateur est toujours utile.
    De même, si tu as une erreur 404, il faut déjà commencer par regarder l'URL appelée...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. [2.x] Erreur jQuery listes déroulantes liées
    Par massacreur dans le forum Symfony
    Réponses: 5
    Dernier message: 09/07/2012, 10h07
  2. [AJAX] avec 3 listes déroulantes liées php+xhtml+css+javascript+ajax
    Par Invité dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 27/12/2008, 15h54
  3. [AJAX] Listes Déroulantes Liées : 2e liste qui ne s'affiche pas
    Par fayred dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/07/2007, 13h07
  4. [AJAX] Exécution sous Internet Explorer (liste déroulantes liées)
    Par dream_of_australia dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/06/2007, 07h24
  5. [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

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