PHP et AJAX Probleme pour renvoyer une valeur

PHP et AJAX Probleme pour renvoyer une valeur - PHP - Programmation

Marsh Posté le 03-11-2010 à 10:42:13    

Bonjour a tous,  
 
J'ai récupérer un petit script sur ce même forum hier, je l'ai un peu modifie mais j'ai toujours le même message d'erreur.  
"Erreur de syntaxe prés de 'test' a la ligne 1"  
 
Jusqu'a la ligne 67 du fichier liste_liees.php tout va bien il me semble
 
Je vous met les fichiers:  
 
config.php
 

Code :
  1. <?php
  2. $host="localhost";
  3. $Login="root";
  4. $Pass="";
  5. $DB="test";
  6. $Table="etudiants";
  7. $champ_niv="niveau";
  8. $champ_etud="etudiants";
  9. ?>


 
 
liste_liees.php  
 

Code :
  1. <html>
  2. <head>
  3. <!--  Script de listes deroulantes liees  avec appel  par AJAX, (evite le rechargement de la page) -->
  4. <script language="Javascript"type="text/JavaScript">
  5. // Requette AJAX
  6. function makeRequest(url,id_niveau,id_ecrire){
  7. var http_request = false;
  8.  //créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
  9.         if (window.XMLHttpRequest) { // Mozilla, Safari,...
  10.             http_request = new XMLHttpRequest();
  11.             if (http_request.overrideMimeType) {
  12.                 http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
  13.             }
  14.         } else if (window.ActiveXObject) { // IE
  15.             try {
  16.                 http_request = new ActiveXObject("Msxml2.XMLHTTP" );
  17.             } catch (e) {
  18.                 try {
  19.                     http_request = new ActiveXObject("Microsoft.XMLHTTP" );
  20.                 } catch (e) {}
  21.             }
  22.         }
  23.         if (!http_request) {
  24.             alert('Abandon :( Impossible de créer une instance XMLHTTP');
  25.             return false;
  26.         }
  27.         http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse
  28.  // lancement de la requete
  29.  http_request.open('POST', url, true);
  30.  //changer le type MIME de la requête pour envoyer des données avec la méthode POST ,  !!!! cette ligne doit etre absolument apres http_request.open('POST'....
  31.  http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  32.  obj=document.getElementById(id_niveau);
  33.  data="val_sel="+obj.value;
  34.         http_request.send(data);
  35. }
  36. function traitementReponse(http_request,id_ecrire) {
  37. var affich="";
  38. if (http_request.readyState == 4) {
  39.  if (http_request.status == 200) {
  40.     // cas avec reponse de PHP en mode texte:
  41.   //chargement des elements reçus dans la liste
  42.   var affich_list=http_request.responseText;
  43.    obj = document.getElementById(id_ecrire);
  44.                 obj.innerHTML = affich_list;
  45.  }
  46.  else {
  47.                 //alert('Un problème est survenu avec la requête.');
  48.    alert('There was a problem with the request.(Code: ' + http_request.status + ')');
  49.         }
  50.     }
  51. }
  52. </script>
  53. </head>
  54. <?php
  55. include ("config.php" );
  56. // Connexion a la base de donnees   
  57. $AccesBase = mysql_connect($host,$Login,$Pass);
  58. mysql_select_db($DB,$AccesBase);
  59. $QuestionBase = "SELECT DISTINCT $champ_niv FROM $Table  ORDER BY $champ_niv ASC " ;
  60. $result_recherche=mysql_query($QuestionBase) or die (mysql_error());
  61. $nombre_enr=mysql_num_rows($result_recherche);
  62. ?>
  63. <body>
  64. <form name="test1" method="post" action="liste_liees.php"  >
  65. <div id="id_list1">Niveau:<br>
  66.  <select name="niv1" id="id_niv1" onChange="makeRequest('repPhpAjax.php','id_niv1','id_list2')">
  67.   <option>-- Choisissez --</option>
  68. <?php
  69.   while ($row=mysql_fetch_assoc($result_recherche)){
  70. ?>
  71.     <option value="<?php echo $row[$champ_niv]?>"><?php echo $row[$champ_niv]?></option>
  72. <?php
  73.   }
  74. ?>
  75.  </select>
  76.  <br><br>
  77. </div>
  78. <div id="id_list2">
  79. <!-- ici sera charge la reponse mode texte de PHP à la request AJAX -->
  80. </div>
  81. </form>
  82. </body>
  83. </html>


 
 
 
repPhpAjax.php  
 

Code :
  1. <?php
  2. // script PHP interrogation Base de donnees pour reponse a la requette AJAX
  3.     include ("config.php" );
  4. // Connexion a la base de donnees   
  5. $AccesBase = mysql_connect($host,$Login,$Pass);
  6. mysql_select_db($DB,$AccesBase);
  7. $QuestionBase = "SELECT * FROM $Table  WHERE ".$champ_niv."='".$_POST["val_sel"]."' ORDER BY ".$champ_etud." ASC " ;
  8. $result_recherche=mysql_query($DB) or die (mysql_error());
  9. // construction de la liste deroulante
  10. $aff=="";
  11. $aff=$aff."Etudiants:<br>
  12.  <select name='niv1' id='cont_list2' >
  13.  <option>-- Choisissez --</option>";
  14.  while ($row=mysql_fetch_assoc($result_recherche)){
  15.   $aff.="<option value=\"$row[$champ_etud]\">$row[$champ_etud]</option>";
  16.  }
  17. $aff=$aff."</select><br><br>";
  18. // envoi reponse Php a Ajax  
  19. echo $aff;
  20. ?>


 
 
 
Si qqun voit la boulette je suis preneur :D  
Merci d'avance


Message édité par kashir le 03-11-2010 à 10:44:35
Reply

Marsh Posté le 03-11-2010 à 10:42:13   

Reply

Marsh Posté le 03-11-2010 à 12:36:01    

On ne fait pas le service après-vente de scripts trouvés ailleurs..
Prend un script qui marche, ensuite on peut t'aider à le modifier. Mais on va pas réparer des scripts (mal) écrits par d'autres


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

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