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

JavaScript Discussion :

[AJAX] AJAX - req.status == 200


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut [AJAX] AJAX - req.status == 200
    salut,
    j'ai un petit souci que je ne m'explique pas, sans doute pourrez-vous m'aider .
    J'ai une page php (file_manager.php) dans laquelle se trouve une requete AJAX qui va vers un autre fichier php (get_folder_content.php) qui fait certaines actions en fonction des variables passées.
    ça fonctionne bien, sauf pour une qui se déroule en deux étapes :
    * Première action: je récupère via responseText un formulaire tout simple (pour entrer le nom d'un nouveau dossier), jusque là ça marche
    * Seconde action: je soumet le formulaire pour créer le dossier.
    mais c'est là le problème, if(req.status == 200) n'est jamais vérifié !

    Si j'affiche directement ma page get_folder_content.php directement avec les bonnes variables dans l'url, elle s'affiche correctement!

    voici ma fonction AJAX - pour reprendre un peu avec les tests que je me suis mis, quand new_folder == 2, test6 ne s'affiche jamais...

    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
    function getFolderContent(f_id,new_folder){
            var req = null;
            if(window.XMLHttpRequest) //firefox
                req = new XMLHttpRequest();
            else if (window.ActiveXObject) {//IE
                try {
                    req = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    req = new ActiveXObject("Microsoft.XMLHTTP");
                }
            }
            req.onreadystatechange = function(){
                if(req.readyState == 4)
                {
                    alert('test5')
                    if(req.status == 200)
                    {
                        alert('test6')
                        document.getElementById("folder_content").innerHTML= req.responseText;
                    }
                    else
                    {
                        alert("error")
                    }
                }
            };
            // GET THE CONTENT OF ONE SELECTED FOLDER
            if (f_id != ''){
            req.open("GET", "../functions/get_folder_content.php?folder_id=" + f_id);
            req.send(null);
            }
     
            //DISPLAY THE FORM TO CREATE A NEW FOLDER
            if (new_folder != ''){
                if (new_folder == 2){
                    new_name = document.forms["new_folder_form"].elements[0].value
                    alert(new_name + new_folder)
                    req.open("GET", "../functions/get_folder_content.php?new_folder=" + new_folder + "&new_folder_name=" + new_name);
                }
                else {
                    req.open("GET", "../functions/get_folder_content.php?new_folder=" + new_folder);
                }
            req.send(null);
            }
            return false
        }
    voici le contenu de ma page get_folder_content.php (je ne met pas tout)
    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
     
    if (isset($_GET['folder_id'])){
    ...
    }
    elseif (isset($_GET['new_folder'])){
        if ($_GET['new_folder'] == 1){
            echo '<tr><td align="center">
            Please enter here the name of your new folder<br>
                    <form name="new_folder_form" onsubmit="getFolderContent(\'\',\'2\')">
                    <input type="text" name="new_folder_name">
                    <input type="submit" value="create">
                    </form>
            </td></tr>';
        }
        elseif ($_GET['new_folder'] == 2 && !empty($_GET['new_folder_name'])){  
            $new_folder_name = $_GET['new_folder_name'];
            echo '<tr><td align="center">
            New folder '.$new_folder_name.' created, thanks !
            </td></tr>';
        }
    }
    Merci d'avance pour le ptit coup de pouce

    Julien

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Salut !
    as-tu essayé de faire un alert de req.status pour voir la valeur qu'il avait ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    j'ai modifié comme ceci :
    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
    req.onreadystatechange = function(){
                alert(req.readyState)
                if(req.readyState == 4)
                {
                    alert(req.status)
                    if(req.status == 200)
                    {
                        alert('test6')
                        document.getElementById("folder_content").innerHTML= req.responseText;
                    }
                    else
                    {
                        alert("error")
                    }
                }
            };
    au premier appel, j'ai une serie d'alertes qui m'affichent ceci:
    1 - 1 - 2 - 3 - 4 - 200 - test6
    donc là ok

    au second appel, c'est different :
    1 - 1 - 4

    et ça s'arrête là, je saute la valeur 3 et pas de valeur retournée sur req.status !

  4. #4
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    C'est bizzard ca!

  5. #5
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    je dirai même plus: c'est bizarre

    si vous voulez tester par vous même (create a new folder):

    http://striweb.si.edu/databases/file_manager_project/manager/new.php

  6. #6
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    On ne peut pas y acceder, not logged.

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

Discussions similaires

  1. $.ajax() récupérer le status code
    Par WalidNat dans le forum jQuery
    Réponses: 1
    Dernier message: 15/01/2012, 20h18
  2. ajax est xhr.status=0
    Par sebxid dans le forum jQuery
    Réponses: 1
    Dernier message: 25/05/2011, 13h16
  3. [AJAX] Ajax et les accents
    Par nico-pyright(c) dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/12/2005, 20h09
  4. [AJAX] Ajax et javascript contenu
    Par zekey dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/09/2005, 20h16
  5. [AJAX] AJAX et javascript
    Par spud5351 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2005, 10h16

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