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
Partager