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] Accéder à une page PHP depuis JS


Sujet :

AJAX

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juillet 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 26
    Points : 28
    Points
    28
    Par défaut [AJAX] Accéder à une page PHP depuis JS
    Bonjour.

    J'ai un code tout simple pour me rendre sur une page PHP depuis un code JavaScript incrusté dans une page HTML et je n'arrive pas à y accéder.

    Voici mon code JavaScript :

    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
    var xhr = new XMLHttpRequest();                                                                                                
     
        if (xhr == null)
        {
            alert("problème d'initialisation de XMLHTTP"); //c'est ok, ça ne passe pas dedans
        }
     
        try
        {
            var sVar1 = encodeURIComponent("contenu 1");
            var sVar2 = encodeURIComponent("et contenu 2");
            xhr.open("GET", "getdata.php?variable1=" + sVar1 + "&variable2= " + sVar2, true);                                                                           
            xhr.send(null);
     
        }
        catch(e)
        {
            alert("problème dans la page PHP"); // ne passe pas ici non plus
        }
     
    alert("fin du code JavaScript");
    Et voici le contenu de mon code getdata.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
    <?php
    header("Content-Type: text/plain"); 
    $variable1 = (isset($_GET["variable1"])) ? $_GET["variable1"] : NULL;
    $variable2 = (isset($_GET["variable2"])) ? $_GET["variable2"] : NULL;
    if ($variable1 && $variable2)
        {
        echo "OK dans php"; //ne passe pas ici
        }
    else
        {
        echo "FAIL dans php"; // ne passe pas ici non plus
        }
    ?>

    Voilà mon souci, c'est que ça n'a pas l'air de réagir avec ma page getdata.php. Ca ne m'affiche ni "OK dans php", ni "FAIL dans php". Ca ne m'affiche rien, à part le message "fin du code JavaScript".

    Pourtant, lorsque j'ouvre mon fichier getdata.php, ça interagit (et ça m'affiche naturellement "FAIL dans php" vu que je ne lui passe pas de variable, mais ça c'est normal).




    D'ou vient le fait que je n'arrive pas a acceder a ma page getata.php depuis ma page en HTML avec du JavaScript svp ?

    Merci d'avance.

  2. #2
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    C'est bien, tu envoies correctement la requête.

    Mais... tu fais quoi au juste quand elle te renvoie une réponse ?

    Ca ne m'affiche rien
    En même temps, tu n'as jamais demandé d'afficher quoi que ce soit, donc ça semble logique.
    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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juillet 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    D'accord je veux bien, mais en meme temps je ne lui demande pas de reponse... je lui demande juste d'afficher un truc en fait.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Deux questions :
    - comment serait-il possible d'afficher quelque chose sans une réponse ?
    - où est-ce que tu lui as demandé d'afficher quoi que ce soit ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Invité
    Invité(e)
    Par défaut
    Il manque la fonction de callback qui sera chargée de réagir aux changements d'états de la requête.
    Le texte est déjà visible mais uniquement avec les outils d'analyse d'un navigateur. En ajoutant ceci, après le test de nullité de xhr, votre texte s'affichera dans une fenêtre dialogue (alert).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    xhr.onreadystatechange = function()
    {
    	if (xhr.readyState==4 && xhr.status==200)
    	{
    		alert(xhr.responseText);
    	}
    }

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juillet 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    ahhhhhhhh d'accord. En fait, ma logique est fausse depuis le debut finalement, je ne conceptualisait pas qu'il fallait absolument avoir un callback pour voir mes interactions, meme si je faisais juste un echo dans mon code PHP.

    Merci a vous pour vos formidables eclaircissements, je comprends mieux depuis, beaucoup mieux meme.

    Et encore un sujet de resolu, merci encore !

  7. #7
    Invité
    Invité(e)
    Par défaut
    Votre logique n'était pas fausse. Vous étiez sur la bonne voie. Il manquait seulement une partie du processus.
    Il vous reste à approfondir un peu le sujet et notamment sur ces codes de status pour comprendre comment fonctionne l'AJAX.
    Pour la mécanique générale : un article de ce site
    Pour le détail des codes de status : un article d'ailleurs
    Et vous demandez pourquoi le test est réalisé sur deux variables (status indiquant la progression dans le cycle de vie de la requête et statut HTTP du serveur vis-à-vis de cette requête).

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

Discussions similaires

  1. [AJAX] AJAX accéder à une page nécessitant login
    Par julien.63 dans le forum AJAX
    Réponses: 1
    Dernier message: 22/04/2009, 03h30
  2. [AJAX] Charger une page php dans un div
    Par drannh dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 14/05/2008, 13h16
  3. [AJAX] passage de valeur pour une page php depuis un formulaire
    Par Ministar dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/09/2007, 22h29
  4. [AJAX] Appeller une page php en Ajax pour action sur Mysql
    Par Overstone dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 20/07/2007, 19h23
  5. Réponses: 4
    Dernier message: 11/08/2006, 14h43

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