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] base javascript --> PHP


Sujet :

AJAX

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par d�faut [AJAX] base javascript --> PHP
    Bonjour,

    Je tente un petit exo pour comprendre comment utiliser l'objet xmlhttprequest. Mon but est simplement de r�cup�rer la largeur de l'�cran via javascript puis de l'afficher (ou d'en faire autre chose via PHP �ventuellement).

    Voici le code de index.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
     
    <!DOCTYPE html>
    <html>
    <header>
        <title>titre</title>
        <script type="text/javascript" src="funcs.js"></script>
     
    <?php
    $width = 0;
    if (isset($_GET["width"])) $width = $_GET["width"];
    else {
        echo '
        <script language="JavaScript"> sendScreenWidth() </script>
        ';
    }
    ?>
    </header>
     
    <body>
    <?php echo $width; ?>
    </body>
    </html>
    puis le code de funcs.js : (la cr�ation de l'objet xhr �tant copi� de wikipedia)
    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
     
    function createXhrObject()
    {
        if (window.XMLHttpRequest)
            return new XMLHttpRequest();
     
        if (window.ActiveXObject)
        {
            var names = [
                "Msxml2.XMLHTTP.6.0",
                "Msxml2.XMLHTTP.3.0",
                "Msxml2.XMLHTTP",
                "Microsoft.XMLHTTP"
            ];
            for(var i in names)
            {
                try{ return new ActiveXObject(names[i]); }
                catch(e){}
            }
        }
        window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
        return null; // non supporté
    }
     
    /* tentative 1:
    function sendScreenWidth() {
        xhr = createXhrObject();
        xhr.open("GET","index.php?width="+screen.width,true);
        xhr.send(null);
    }
    */
     
    // tentative 2 : (marche pas non plus)
    function sendScreenWidth() {
        xhr = createXhrObject();
        xhr.open("GET","index.php",true);
        var data = "width="+screen.width;
        alert(data); // debug
        xhr.send(data);
    }
    L'alert() dans la derni�re fonction affiche bien ma largeur d'�cran, mais l'echo en php persiste � afficher 0.

    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 : 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
    Tu n'as manifestement pas bien compris � quoi sert AJAX ni comment l'utiliser...
    Te l'expliquer reviendrait � r��crire les tutoriels du site, donc je t'invites � les lire : TUTORIELS AJAX.
    Cela te permettra entre autre de comprendre qu'AJAX permet d'envoyer des informations au serveur et d'en r�cup�rer une r�ponse. Dans ton cas, tu tu ne traites pas la r�ponse...
    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
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par d�faut
    C'est h�las la r�ponse � laquelle je m'attendais un peu. Bien s�r que je ne ma�trise pas AJAX, puisque j'ai "commenc�" hier par simple curiosit�... je demandais juste pourquoi cet exemple encore plus simple que ceux des tutos ne fonctionne pas.

    Cela te permettra entre autre de comprendre qu'AJAX permet d'envoyer des informations au serveur et d'en r�cup�rer une r�ponse.
    --> oui �a j'avais compris, c'est �crit partout sur le web. Mais comment auto-actualiser une page tr�s concr�tement, c'est d�j� beaucoup moins renseign� (ou alors je n'ai simplement pas assez cherch�, option largement envisageable ^^).

    �a me fait quand m�me avancer un peu : il faut ajouter une fonction qui comme tu dis traite la r�ponse, avec "if(xhr.readyState == 4 && xhr.status == 200) ...". Une r�ponse indiqu�e comme �tant la meilleure sur un autre forum (comment�amarche, je crois) indiquait qu'on peut se passer de cette fonction. D'o� mon incompr�hension. Enfin merci quand m�me !

  4. #4
    Membre �clair� Avatar de llaffont
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Juin 2007
    Messages
    702
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par d�faut
    Tout ce qui est Aspect de Page qui ne demande aucune source ext�rieur (Script PHP ou autre) ne fait pas appel � de l'AJAX.

    Pour obtenir une largeur d'�cran et l'afficher sur la page du Javascript suffit !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Par d�faut
    Oui llaffont je suis bien d'accord, c'est pour �a que j'ai pr�cis� qu'il s'agit d'un exercice pour comprendre comment une page php peut s'auto-(r)appeler "silencieusement" avec de nouveaux param�tres.

    Je suis pas encore au bout du tunnel des tutoriaux, mais un jour j'y arriverai ^^ d�j� ce soir je teste avec du "onreadystatechange", �a devrait mieux marcher. Sinon bon j'en ai absolument pas besoin dans l'imm�diat, c'�tait une curiosit� comme �a. Je marquerai ce fil comme "r�solu" d'ici quelques heures/jours.

  6. #6
    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
    Citation Envoy� par Ulath0
    --> oui �a j'avais compris, c'est �crit partout sur le web. Mais comment auto-actualiser une page tr�s concr�tement, c'est d�j� beaucoup moins renseign� (ou alors je n'ai simplement pas assez cherch�, option largement envisageable ^^).
    Parce que envoyer une requ�te et recevoir une r�ponse peut se faire de fa�on assez standard et des exemples concrets sont faciles � donner.
    Ensuite, comment utiliser la r�ponse et l'int�grer dans ta page, �a d�pend de beaucoup de choses, donc �a ne peut �tre que th�orique...
    Ceci dit, il n'est pas envisageable de se lancer dans AJAX sans avoir un minimum de connaissances en JavaScript.
    Citation Envoy� par Ulath0
    �a me fait quand m�me avancer un peu : il faut ajouter une fonction qui comme tu dis traite la r�ponse, avec "if(xhr.readyState == 4 && xhr.status == 200) ...". Une r�ponse indiqu�e comme �tant la meilleure sur un autre forum (comment�amarche, je crois) indiquait qu'on peut se passer de cette fonction. D'o� mon incompr�hension. Enfin merci quand m�me !
    Ben dans l'absolu, tu peux t'en passer si tu fais une requ�te synchrone (mais bien que parfois justifi�, �a r�duit quand m�me l'int�r�t d'AJAX), soit si tu n'attends pas de r�ponse particuli�re du serveur, mais m�me dans ce cas, pouvoir savoir ne serait-ce que si la requ�te � abouti ou non est suffisamment important pour justifier de prendre en compte la r�ponse du serveur.
    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. [AJAX] Tableau Javascript vers PHP
    Par D�d�86 dans le forum AJAX
    R�ponses: 3
    Dernier message: 07/06/2009, 14h36
  2. [AJAX] r�cup�rer valeur php pour javascript
    Par affreuxzozo dans le forum AJAX
    R�ponses: 4
    Dernier message: 05/05/2009, 11h38
  3. [T�l�travail] D�veloppeur PHP - AJAX - MySQL - JavaScript
    Par paradeofphp dans le forum Demandes
    R�ponses: 0
    Dernier message: 03/03/2009, 00h08
  4. [Partenaire] D�veloppeur PHP/SQL/AJAX/Smarty/JavaScript
    Par smooky57 dans le forum Autres
    R�ponses: 0
    Dernier message: 11/02/2009, 01h31
  5. [AJAX] Compte � rebours PHP Javascript ajax
    Par syl2042 dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 01/08/2007, 18h00

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