[Ajax] Soucis d'accent [Résolu]

Soucis d'accent [Résolu] [Ajax] - PHP - Programmation

Marsh Posté le 14-04-2011 à 14:18:02    

Bonjour,
 
J'ai un soucis avec Ajax, je vous livre ci plus bas mon code.
 
Lorsque que une option du 1er select (departement) contient un caractére spécial, le second select (element) affiche une liste vide.
 
Je pense que le soucis viens de Ajax qui affiche certainement un ? dans un losange dans ma variable.
Quelqu'un aurait une solution pour forcer Ajax a passer mes accents ?
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
  5. <script type="text/javascript" src="oDOMImplementation.js"></script>
  6. <script type="text/javascript">
  7. function getXhr(){
  8.     var xhr = null;
  9. if(window.XMLHttpRequest)
  10.  xhr = new XMLHttpRequest();
  11. else if(window.ActiveXObject){
  12.  try {
  13. xhr = new ActiveXObject("Msxml2.XMLHTTP" );
  14. } catch (e) {
  15. xhr = new ActiveXObject("Microsoft.XMLHTTP" );
  16. }
  17. }
  18. else {
  19. alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  20. xhr = false;
  21. }
  22.     return xhr;
  23. }
  24. function go(){
  25. var xhr = getXhr();
  26. xhr.onreadystatechange = function(){
  27. if(xhr.readyState == 4 && xhr.status == 200){
  28. leselect = xhr.responseText;
  29. document.getElementById('element').innerHTML = leselect;
  30. }
  31. }
  32. xhr.open("POST","gestionStockAjax.php",true);
  33. xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  34. sel = document.getElementById("departement" );
  35. dept= sel.options[sel.selectedIndex].value;
  36. xhr.send("idDept="+dept);
  37. }
  38. </script>
  39. </head>
  40. <body>
  41. <?php
  42. include 'connection.php';
  43. ?>
  44. <form action="traitementModifGestionElement.php">
  45. Département :
  46. <select name="departement" id="departement" onchange="go()">
  47. <option value="-1">Choix</option>
  48. <?php
  49. $res = mysql_query("SELECT DISTINCT depNom FROM element ORDER BY depNom" );
  50. while($row = mysql_fetch_array($res)){
  51. echo '<option value="'.$row['depNom'].'">'.$row['depNom'].'</option>';
  52. }
  53. ?>
  54. </select>
  55. <br>
  56. Element :
  57. <div id="element" style="display:inline">
  58. <select name="element" >
  59. <option value="-1">Choisir un Departement</option>
  60. </select>
  61. </div>
  62. <br>
  63. <input type="submit" name="Selection" value="Selection">
  64. </form>
  65. <form method="post" action="traitementEnvoiGestionElement.php">
  66. <?php
  67. $resultat = mysql_query("SELECT * FROM tabletmp" );
  68. while($data=mysql_fetch_array($resultat)){
  69. $element = $data['ttVal'];
  70. $result = mysql_query('SELECT * FROM element WHERE eleNom=\''.$element.'\' ');
  71. while($donnee=mysql_fetch_array($result)){
  72.  $departement = $donnee['depNom'];
  73.  echo 'Element : <input type="text" value="'.$donnee['eleNom'].'" name="element" >';
  74.  echo '<input type="hidden" value="'.$donnee['eleNom'].'" name="el" >';
  75.  echo '<br>';
  76.  echo 'Stock : <input type="text" name="etat" value="'. $donnee['eleEtat'].'">';
  77.  echo '<input type="hidden" name="state" value="'. $donnee['eleEtat'].'">';
  78.  echo '<br>';
  79.  echo 'Niveau Limite : <input type="text" name="niveauLimite" value="'. $donnee['eleNiveauLimite'].'">';
  80.  echo '<input type="hidden" name="nivLim" value="'. $donnee['eleNiveauLimite'].'">';
  81.  echo '<br>';
  82.  echo '<input type="hidden" name="dept" value="'. $donnee['depNom'].'">';
  83.  echo 'Département : <select name="departement" id="departement">';
  84.  $s2 = '';
  85.  $res = mysql_query('SELECT * FROM departement ');
  86.  while($dot=mysql_fetch_array($res)){
  87.   if($dot['depNom'] == $departement){
  88.    $s1 = '<option value='.$departement.'>'.$departement.'</option>';
  89.   }else{
  90.    $s2 = $s2 . '<option value='.$dot['depNom'].'>'.$dot['depNom'].'</option>';
  91.   }
  92.  }
  93. echo $s1 . '' .$s2;
  94. echo '</select>';
  95. echo '<br>';
  96. echo '<input type="submit" value="Modifier">';
  97. }
  98. }
  99. ?>
  100. </form>
  101. <?php
  102. @mysql_close();
  103. ?>
  104. </body>
  105. </html>


 

Code :
  1. <?php
  2. include 'connection.php';
  3. $element = $_GET['element'];
  4. $resultat = mysql_query('SELECT * FROM element WHERE eleNom=\''.$element.'\'');
  5. mysql_query("TRUNCATE tabletmp" );
  6. while($data=mysql_fetch_array($resultat)){
  7. $el = $data['eleNom'];
  8. mysql_query("INSERT INTO tabletmp VALUES('$el')" );
  9. }
  10. mysql_close();
  11. ?>


 

Code :
  1. <?php
  2. header('Content-Type: text/html; charset=ISO-8859-1');
  3. echo "<select name='element'>";
  4. if(isset($_POST['idDept'])){
  5.  $departement = $_POST['idDept'];
  6.  include 'connection.php';
  7.   $res = mysql_query('SELECT * FROM element WHERE depNom=\''.$departement.'\' ORDER BY eleNom');
  8.   while($data = mysql_fetch_array($res)){
  9.    $nom = $data['eleNom'];
  10.    echo '<option value="'.$nom.'">'.$nom.' (Reste : ' .$data['eleEtat']. ')</option>';
  11.   }
  12. }
  13. echo '</select>';
  14. ?>


 
 
------------- Edit -------------
 
J'ai ajouter dans la page gestionStockAjax.php

Code :
  1. $departement = mb_convert_encoding($_POST['idDept'], "ISO-8859-1", "UTF-8" );


Message édité par forestguns le 14-04-2011 à 15:49:57
Reply

Marsh Posté le 14-04-2011 à 14:18:02   

Reply

Sujets relatifs:

Leave a Replay

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