probleme ajax/js/php

probleme ajax/js/php - HTML/CSS - Programmation

Marsh Posté le 01-02-2009 à 16:37:39    

bonjour je suis entrain de créer un site web de cuisine le probleme c'est que je ne parviens pas à avoir un retour de mon ajax.
 
code php (page principale):
 <td height="36" colspan="3" class="navText  Style2" id="navigation">
       <?php
   $link=mysql_connect("ma_base);
   mysql_select_db("j3r3my" );
   
   $sql="select nom_categorie from categorie";
   $result=mysql_query($sql);
   
   echo '<a href="javascript:clickMenu(\'Accueil\');">Accueil</a>';
   echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
   
   while ($row = mysql_fetch_array($result)){
    echo '<a href="javascript:clickMenu(\''.$row[0].'\');">'.$row[0].'</a>';
    echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
     
   }
   
   mysql_free_result($result);
   mysql_close($link);  
   
  ?></td>
 
code js:
function clickMenu(a)
{
 var param="categorie="+a;
 ajax('ajax.php',param,'POST',true);
}
 
avc la fonction d'appel ajax:
function ajax(url,param,method,mode)
{
 var httpRequest = false;
               
    if (window.XMLHttpRequest)  
    { // Mozilla, Safari,...
  httpRequest = new XMLHttpRequest();
   
  if(httpRequest.overrideMimeType)  
  {
   httpRequest.overrideMimeType('text/xml');
  }
 }
 else if (window.ActiveXObject)
 { // IE
  try  
  {
   httpRequest = new ActiveXObject("Msxml2.XMLHTTP" );
  }
  catch (e)  
  {
   try  
   {
    httpRequest = new ActiveXObject("Microsoft.XMLHTTP" );
   }
   catch (e) {}
  }
 }
 
 if (!httpRequest)  
 {
  alert('Impossible de créer une instance XMLHTTP');
  return false;
 }
 httpRequest.onreadystatechange = function() { traiter(httpRequest); };
 httpRequest.open(method, url, mode);
 if (method == "POST" )
  httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');  
 httpRequest.send(param);
}
             
function traiter(httpRequest)
{
 if (httpRequest.readyState == 4)  
 {
  if (httpRequest.status == 200)  
  {
   eval(httpRequest.responseText)
  }  
 }
 else
 {
  // message de chargement
 }
}
 
et mon ajax:
<?php
    echo 'alert("blabala" );
?>
 
svp aidez moi :(:(

Reply

Marsh Posté le 01-02-2009 à 16:37:39   

Reply

Marsh Posté le 02-02-2009 à 00:44:58    

Et ça te dirait d'utiliser des outils déjà comme firebug sous firefox pour voir quelle est l'erreur que te sors le navigateur ?

Reply

Marsh Posté le 02-02-2009 à 07:45:03    

bah justement j'ai aucune erreur, c'est ça qui est bizarre

Reply

Marsh Posté le 02-02-2009 à 07:46:48    

voici ce que j'obtiens avec firebug quand je fai mon action de clique sur un de mes éléments du menu:
302 Moved Temporarily

Reply

Marsh Posté le 02-02-2009 à 07:56:49    

ton serveur renvoi une erreur 302, donc tu ne récupère JAMAIS ce que tu souhaite avoir.
 
ici  

Code :
  1. function traiter(httpRequest)
  2. {
  3. if (httpRequest.readyState == 4) 
  4. {
  5.  if (httpRequest.status == 200) 
  6.  {
  7.    eval(httpRequest.responseText)
  8.  } 
  9. }
  10. else
  11. {
  12.  console.log(httpRequest)
  13. //ICI TU FAIS TON CONSOLE.LOG ET TU REGARDES LE CONTENU DE L'OBJET AFIN DE VOIR L'ERREUR  
  14. }
  15. }


Là où j'ai mis le console.log tu dois aussi mettre un appel à une methode qui te sortiras un message d'erreur (alert('erreur serveur') par exemple).
Regarde donc ton  ou bien les données que tu as envoyé

Reply

Marsh Posté le 02-02-2009 à 16:57:21    

le console.log me raméne a l'onglet du dom.
pour l'histoire de la methode j'ai pas trop compris.
j'ai deja taf avec de l'ajax, php et js, mais là c'est la premiere fois que je vois ce disfonctionnement.

Reply

Marsh Posté le 04-02-2009 à 08:34:57    

pbl résolu je comprend pas pourquoi...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed