Problème Javascript/Ajax/PHP

Problème Javascript/Ajax/PHP - HTML/CSS - Programmation

Marsh Posté le 19-02-2010 à 12:09:14    

Bonjour,
 
J'ai le formulaire suivant qui permet de sélectionner un nom d'application :
 

Code :
  1. <form method="POST" action="post.php">
  2. <select onchange="ajax(this.options[this.selectedIndex].id)" name="Product_Designation">
  3. <option>- - Select - -</option>
  4. <?php
  5. <option id="1>">Appli 1</option>
  6. <option id="2>">Appli 2</option>
  7. <option id="3">Appli 3</option>
  8. </select>
  9. <div id="version">
  10. </div>
  11. <input type="submit" value="Envoyer" />
  12. </form>


 
Lorsque l'on sélectionne l'application la fonction javascript ajax est appelée :
 

Code :
  1. function ajax(idproduct)
  2. {
  3. var xhr = getXMLHttpRequest(); // Voyez la fonction getXMLHttpRequest() définie dans la partie précédente
  4. xhr.onreadystatechange = function() {
  5.         if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
  6.    res = xhr.responseText;
  7.    alert(res);
  8.    document.getElementById("version" ).innerHTML=res;
  9.         }
  10. };
  11. xhr.open("POST", "ajax.php", true);
  12. xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded" );
  13. xhr.send("Product_Id="+idproduct);
  14. }


 
Cette fonction va permettre d'appeller la page ajax.php qui va récupérer toutes les versions correspondantes à l'application sélectionnée :
 

Code :
  1. <?php
  2. header("Content-Type: text/plain" );
  3. include("_acces_bd.php" );
  4. $Product_Id=$_POST['Product_Id'];
  5. $sql="SELECT BCGW_Product_Designation FROM bcgw_product WHERE BCGW_Product_Id=\"$Product_Id\";";
  6. $result=mysql_query("$sql" );
  7. $rresult=mysql_fetch_array($result);
  8. $Product_Designation=$rresult['BCGW_Product_Designation'];
  9. $res_php ="";
  10. $res_php .= "<select name='Product_Version'><option>- - Select - -</option>";
  11. $sql="SELECT BCGW_Product_Version FROM bcgw_product WHERE BCGW_Product_Designation=\"$Product_Designation\" GROUP BY BCGW_Product_Version;";
  12. $result=mysql_query("$sql" );
  13. while($rresult=mysql_fetch_array($result))
  14. {
  15. $Product_Version=$rresult['BCGW_Product_Version'];
  16. $res_php .= "<option>$Product_Version</option>";
  17. }
  18. mysql_close();
  19. $res_php .= "</select><input type='hidden' name='test' value='paul'/>";
  20. echo "$res_php";
  21. ?>


 
 
Une fois le menu des versions consitutué, le résultat est renvoyé à la fonction ajax qui va faire un document.getElementById("version" ).innerHTML=res; de sorte à remplir la balise <div id="version"></div> avec le menu.
 
Tout ceci marche très bien (le menu Product_Version apparaît bien)
 
Le problème est quand je veut soumettre le formulaire, j'arrive à récupérer $_POST['Product_Designation'] mais pas $_POST['Product_Version']. Je ne vois pas où est le problème, je suis un peu à court d'idée, peut-être le innerHTML qui fait pas son boulo à 100%. Qu'en pensez-vous ?
 
Merci  :)


Message édité par Magg27 le 19-02-2010 à 14:05:30
Reply

Marsh Posté le 19-02-2010 à 12:09:14   

Reply

Sujets relatifs:

Leave a Replay

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