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] PHP - AJAX


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Employ�
    Inscrit en
    Septembre 2007
    Messages
    20
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Employ�

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par d�faut [AJAX] PHP - AJAX
    Hello � tous,
    je suis un train d'essayer de programmer une page web en PHP/AJAX qui se connecterait � une BD MySQL.
    Je me suis largement inspir� du cours : Introduction � AJAX et interaction avec PHP de Ga�l Donat.
    J'ai trois page :
    - la page principale HTML
    - la page javascript qui s'occupe de g�rer l'ajax proprement dit
    - la page PHP qui se connecte � la BD MySQL et qui renvoie le r�sultat d'un SELECT � la fonction Javascript en format XML.

    Mon probl�me, c'est que je n'ai aucun feedback quand au r�sultat obtenu. La table sur laquelle porte la requ�te SQL contient 4 champs mais aucun n'est affich� par la fonction Javascript.
    Pourtant, quand j'encadre mon code PHP par des balises html, head, body et que je regarde le r�sultat, les 4 r�sultats apparaissent bien.
    De m�me, quand je fais porter ma fonction Javascript sur un fichier XML au lieu de sur mon fichier PHP, j'ai bien un r�sultat.
    L� o� �a coince, c'est quand j'utilise ma fonction Javascript ET mon code PHP ensemble...

    Mon code :
    HTML
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" type="text/css" href="styles.css">
    <title>Bienvenue</title>
    </head>

    <div id="contenu">

    <?php

    $mysql_host = "monserveur";
    $mysql_user = "monuser";
    $mysql_password = "monpass";
    $mysql_db = "madb";

    $connexion = mysql_connect($mysql_host,$mysql_user,$mysql_password) or die ('Error connecting to mysql');
    if ($connexion != 0)
    {
    echo ("Connexion �tablie");
    }

    mysql_select_db($mysql_db);

    $mon_champ = isset($_POST['mon_champ']) ? $_POST['mon_champ'] : '';

    if ($mon_champ)
    {
    $table = "Messages";
    $requete = "INSERT INTO Messages(NumMess,Mess) VALUES ('','$mon_champ')";
    $resultat = mysql_query($requete) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    echo ("R�sultat : $resultat - Champ = $mon_champ");
    }

    ?>

    <script type="text/javascript" src="ajax_script.js"></script>

    <p>
    <a href="javascript:ajax();">Refresh</a>
    </p>


    <form method="POST">
    <input name="mon_champ" type="text" >
    <input type="submit" value="OK" >
    </form>
    </div>
    </body>
    </html>

    JAVASCRIPT
    function ajax()
    {
    var xhr=null;

    if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xhr.onreadystatechange = function() { alert_ajax(xhr); };

    xhr.open("GET", "http://belotte.net84.net/reponse.php", true);
    xhr.send(null);
    }

    function alert_ajax(xhr)
    {
    var docXML= xhr.responseXML;
    var items = docXML.getElementsByTagName("donnee");

    //alert(items.length);
    for (i=0;i<items.length;i++)
    {
    alert (items.item(i).firstChild.data);
    }
    }

    PHP
    <?php
    header('Content-Type: text/xml');
    echo("<?xml version=\"1.0\"?><exemple>");

    //on connecte a la BDD
    $dbhost="monserveur";
    $dbuser="monuser";
    $dbpass="monpass";
    $mysql_db = "madb";

    $dblink=mysql_connect($dbhost,$dbuser,$dbpass);
    mysql_select_db($mysql_db);

    $query = "SELECT * FROM Messages";
    $result = mysql_query($query,$dblink) or die (mysql_error($dblink));

    while ($row = mysql_fetch_array($result))
    {
    echo("<donnee>".$row[0]."</donnee>");

    }
    echo("</exemple>");

    ?>




    Quand je valide la ligne mise en commentaire (en gras) dans mon code Javascript, il m'affiche 0. Autrement dit, il n'a aucune donn�e.

    Mes infos de connexions sont correctes, de m�me que les noms de mes fichiers (je les ai v�rifi�s plusieurs fois).

    L� je ne sais vraiment plus o� j'ai fais une erreur.
    Je d�bute en PHP et en javascript donc c'est peut-�tre une erreur toute b�te...

    Si quelqu'un pouvait me filer un petit coup de pouce �a m'arrangerait �norm�ment.

    Merci pour votre aide,
    Heydrickx

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    183
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 183
    Par d�faut
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

    Rajoute �a entre ces deux lignes :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    xhr.open("GET", "http://belotte.net84.net/reponse.php", true);
    xhr.send(null);
    �a ne devrait pas r�soudre ton probl�me mais bon fais le quand m�me.

    Sinon qu'est ce que c'est la fonction alert_ajax ? �a fait partie du noyau JavaScript ou c'est une fonction � toi ?

    NB : Les balises code ne sont pas un luxe ... uses en s'il te plait

  3. #3
    Membre actif
    Profil pro
    Employ�
    Inscrit en
    Septembre 2007
    Messages
    20
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Employ�

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par d�faut
    Merci pour ta r�ponse. Je viens d'ajouter la ligne que tu m'as donn�e � l'endroit que tu m'as donn�, et comme tu me l'avais dis, �a n'a pas arrang� mon probl�me (mais �a tu l'avais pr�vu).
    Est-ce que tu peux me dire ce que fait cette nouvelle ligne ?

    La fonction alert_ajax est une fonction � moi (enfin ce n'est pas moi qui l'ai pondue de toutes pi�ces mais elle n'est pas inh�rente � Javascript).

    D�sol� pour les balises de code... promis je ferai attention pour les prochaines...

  4. #4
    R�dacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par d�faut
    C' est plutot ce bout de code qui attire mon attention :
    et dans le php :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    $mon_champ = isset($_POST['mon_champ']) ? $_POST['mon_champ'] : '';
     
    if ($mon_champ)
    {
    tu envoie une requete en post sur une page php sans queryString (enfin je fait allusion � get) par xhr.send(null). Ce qui veut dire que $_POST['nom_champ'] vaudra toujours null.
    Pour reparer �a, je te propose de faire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    xhr.send(document.getElementById('nom_champ').value);
    A condition que tu ecris :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    <form method="POST">
    <input name="mon_champ" id="nom_champ" type="text" >
    <input type="submit" value="OK" >
    </form>
    Priere de bien presenter ton post. La prochaine fois, je n' y jetterai meme pas un coup d' oeil.

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    183
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 183
    Par d�faut
    La ligne sp�cifie l'encode du fichier que tu appelles

    Voili voilou

Discussions similaires

  1. Unserialize(urldecode()) php, ajax, php
    Par hannibal974 dans le forum Biblioth�ques et frameworks
    R�ponses: 23
    Dernier message: 25/05/2014, 12h43
  2. R�ponses: 0
    Dernier message: 21/06/2012, 12h22
  3. [AJAX] PHP avec ajax(makerequest)
    Par Benjiijneb dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 11/04/2006, 16h53
  4. Config IIS pour PHP / Ajax
    Par didjac dans le forum IIS
    R�ponses: 1
    Dernier message: 02/04/2006, 10h03
  5. [Rico] Afficher depuis d'une liste deroulante (PHP+AJAX)
    Par maxis dans le forum Biblioth�ques & Frameworks
    R�ponses: 9
    Dernier message: 27/02/2006, 12h47

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