Problème d'envoi d'une variable d'un formulaire en GET sous FF

Eléphanteau du PHP | 39 Messages

29 oct. 2008, 13:23

Bonjour à tous,

Mon problème est le suivant :
J'utilise de l'AJAX pour faire apparaître une liste déroulante. Celle-ci apparaît et s'alimente en fonction du choix fait sur une précédente liste déroulante (le truc classique). Sachant que ces listes déroulantes sont dans un formulaire.

Sous IE7 pas de problème, quand j'envoie avec la méthode GET, je parviens bien récupérer ma variable.

Par contre sous FF, la variable de ne passe pas et parviens pas à la récupérer. C'est comme si FF ne voyait pas la liste déroulant générer par AJAX.

Voici mon formulaire

Code : Tout sélectionner

<form action="gab1_p2.php" method="get" name="mon_form"> <label>Sélectionner une gamme de produit</label> <select name="gamme_produit" onchange="voirProduit(selectedIndex)"> <option value="" selected="selected"></option> <?php $req="SELECT * FROM gammes"; $result=mysql_query($req); $nb=mysql_num_rows($result); $i=0; while($nb>$i) { $data=mysql_fetch_object($result); echo "<option value='".$data->gamme_id."' >".$data->gamme_nom."</option>"; $i++; } ?> </select> <label>Sélectionner un produit</label> <div id="product"> <select ></select> </div> <label>Affiner votre recherche</label> <input name="keyword" type="text" value="Taper un mot cl&eacute;" onclick="if(this.value=='Taper un mot cl&eacute;')this.value=''"/> </td> <td colspan="2" align="right"><input name="submit" type="submit" value="Rechercher" /> </form> </table>
Voici ma function AJAX:

Code : Tout sélectionner

<script language="javascript"> function voirProduit(id) { req = new XMLHttpRequest(); req.onreadystatechange = function() { if(req.readyState == 4) { document.getElementById("product").innerHTML=req.responseText; } } appel="recup_produit.php?val2="+id; req.open("GET",appel , true); req.send(null); } </script>
Voici mon fichier PHP:
<?php
$produit=$_GET['val2'];
mysql_connect("localhost","root");
mysql_select_db("support");
$req2="SELECT * FROM produits WHERE gamme_id_='$produit' ";
$result2=mysql_query($req2) or die(mysql_error());

$nb2=mysql_num_rows($result2);
$i2=0;

echo "<select name='prod'>";

while($nb2>$i2)
	{
	$data= mysql_fetch_object($result2);
	echo "<option value='".$data->nom_produit."' >".$data->nom_produit."</option>";

	$i2++;

	}
echo "</select>";
?>
Merci d'avance pour votre aide :wink:
C'est en forgeant qu'on se forge

Eléphant du PHP | 451 Messages

31 oct. 2008, 01:23

Tiens tu es de la même ville que moi.

Bref essaye avec la méthode POST au lieu de GET car moi avec la méthode POST cela fonctionne nikel sous firefox et sous IE

Eléphanteau du PHP | 39 Messages

27 nov. 2008, 10:39

Désolé pour le retard, mais même en POST cela ne fonctionne pas.

Depuis pour m'assurer que cela ne provenait pas de ma fonction AJAX, j'ai optimisé celle-ci qui à l'air de fonctionner sur les différents navigateurs.

Je ne comprend vraiment pas pourquoi avec IE je voie bien passer toutes mes variables dans l'URL (en GET) et pas sur les autres Browsers!:oops:

Petite précision je suis en locale avec WAMP.
C'est en forgeant qu'on se forge