[JS/PHP]remplir select

Salut ,

J'ai un petit problème , j'aimerai remplir un select multiple par rapport a des données dans une bdd via une fonction javascript et la fonction xmlhttprequest , j'ai essayer de le faire mais ça marche pas .

voici ce que j'ai fait :

HTML :

<select class="multiple" name="liste_champs">
</select>
<a href="#" onclick="frais()">ok</a>

JS :

function frais()
{

var xhr_object = null;
var numero_a = document.form_aff.Numero_A.value
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}

xhr_object.open("POST", "affaires.php", true);

xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4)
eval(xhr_object.responseText);
}

xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

var data = "form=ss1";

xhr_object.send(data)
}

PHP :
<?php

mysql_connect("localhost",'root','') or die("connexion impossible");

mysql_select_db("base") or die("selection database impossible");

$req = mysql_query("SELECT id,libelle FROM inscrit ") or die("req foiré");

while($r = mysql_fetch_array($req))
{
echo "<option value='".$r[0]."'>".$r[1] ."</option>";
}

mysql_close($mysql_db);

?>

La page php marche quand on la test .

Merci de vos réponses ! :)

2 réponses

  1. eval(xhr_object.responseText); 


    Pourquoi faire une eval ici ? :O

    Tu voulais qu'il fasse quoi ?
    1. en faite l'eval ne sert à rien c'est vrai j'ai oublié de l'enlevé quand je l'ai pris d'un exemple..

      mais là j'ai refais le code et cette fois ci j'y suis presque :

      JS :
      function frais()
      {

      var xhr_object = null;

      if(window.XMLHttpRequest) // Firefox
      xhr_object = new XMLHttpRequest();
      else if(window.ActiveXObject) // Internet Explorer
      xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
      else { // XMLHttpRequest non supporté par le navigateur
      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
      return;
      }

      xhr_object.open("POST", "inc/affaire.php", true);

      xhr_object.onreadystatechange = function() {
      if(xhr_object.readyState == 4) xhr_object.responseText;
      }

      xhr_object.send(null);

      //document.form_aff.liste_champs[1] = new Option('TEST') => marche

      }

      PHP :

      <?php

      $con = mysql_connect("localhost",'root','') or die("connexion impossible");

      mysql_select_db("database") or die("selection database impossible");

      $req = mysql_query("SELECT id,libelle FROM inscrit ") or die("req foiré");

      $i=0;
      while($r = mysql_fetch_array($req))
      {
      echo "document.form_aff.liste_champs[$i] = new Option('".$r[1]."');";
      $i++;
      }

      mysql_close($con);

      ?>

      cette fois ci quand je fais alert(xhr_object.responseText) dans le JS ça me renvoie
      un bon code JS mais ça ne rempli pas le select pourtant quand j'enleve le commentaire document.form_aff.liste_champs[1] = new Option('TEST') et bien le select ce rempli .. il me manque un truc mais quoi