Page 1 sur 1

Récupérer 'value' dans une 'function' ajax

Posté : 10 sept. 2010, 17:09
par athome
Bonjour, j'expose mon problème

J'ai un menu déroulant qui appel automatiquement deux autres menus déroulants
le soucis, c'est que je n'ai que la valeur du 1er menu déroulant qui rempli ma base mysql !

Ca ne doit pas être grand chose, mais je tourne un peu en rond là !

voici le code :

ajax.js

Code : Tout sélectionner

function ajax(strthis) { var param = strthis.value; var codedial = document.getElementById("codedial").options[document.getElementById("codedial").selectedIndex].value; $("#tr_intitule").empty(); $.ajax ( { type: "POST", url: "select_intitule.php", data: "var="+param, success: function(msg) { $("#tr_intitule").append("<td>"+ msg +"</td>"); } } ); var param = strthis.value; var codedial = document.getElementById("codedial").options[document.getElementById("codedial").selectedIndex].value; $("#tr_unite").empty(); $.ajax ( { type: "POST", url: "select_unite.php", data: "var="+param, success: function(msg) { $("#tr_unite").append("<td>"+ msg +"</td>"); } } ); }
form1.php

Code : Tout sélectionner

<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="ajax.js"></script> <form method="POST" action="valide1.php" name="caapp"> <tr align="center"> <td><div align="right">Code : </div></td> <td><div align="left"><?php include('select_codedial.php')?></div></td> </tr> <tr align="center"> <td><div align="right">Unité d'Emploi : </div></td> <td><div align="left" id='tr_unite'><?php include('select_unite.php')?></div></td> </tr> <tr align="center"> <td><div align="right">Intitulé Code : </div></td> <td><div align="left" id='tr_intitule'><?php include('select_intitule.php')?></div></td> </tr> <tr align="center"> <td colspan="2"><input type="submit" value="Envoyer" /></td> </tr> <input type="hidden" name="id" value="<?php echo($id) ;?>"> </form>
select_codedial.php

Code : Tout sélectionner

<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="ajax.js"></script> <select id='codedial' name='codedial' onchange="ajax(this)"> <option value='void_codedial'>-</option> <?php include("../connexion.php"); $query = "SELECT DISTINCT codedial FROM codedial ORDER BY codedial ASC"; $rq = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($rq, MYSQL_ASSOC)) { $codedial = $row["codedial"]; echo "<option value='$codedial'>$codedial</option>"; } mysql_close(); ?> </select>
select_unite.php

Code : Tout sélectionner

<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="ajax.js"></script> <select id='unite' name='unite'> <?php include("../connexion.php"); $var=$_POST['var']; $query = "SELECT DISTINCT unite FROM codedial WHERE codedial='$var' ORDER BY unite ASC"; $rq = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($rq, MYSQL_ASSOC)) { $unite = $row["unite"]; echo "<option value='$unite'>$unite</option>"; } mysql_close(); ?> </select>
select_intitule.php

Code : Tout sélectionner

<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="ajax.js"></script> <select id='intitule' name='intitule'> <?php include("../connexion.php"); $var=$_POST['var']; $query = "SELECT DISTINCT intitule FROM codedial WHERE codedial='$var' ORDER BY intitule ASC"; $rq = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($rq, MYSQL_ASSOC)) { $intitule = $row["intitule"]; echo "<option value='$intitule'>$intitule</option>"; } mysql_close(); ?> </select>

Re: Récupérer 'value' dans une 'function' ajax

Posté : 13 sept. 2010, 10:39
par athome
un petit up, pour mon soucis de value perdu dans ajax ;)

Re: Récupérer 'value' dans une 'function' ajax

Posté : 13 sept. 2010, 18:14
par Aureusms
J'ai lu ton premier POST mais en travers :
Pourquoi mets tu deux fois les lignes dans ajax.js:
   var param = strthis.value;
                var codedial = document.getElementById("codedial").options[document.getElementById("codedial").selectedIndex].value;

Re: Récupérer 'value' dans une 'function' ajax

Posté : 14 sept. 2010, 09:27
par athome
en fait ce script était utilisé pour un seul menu déroulant alors j'ai doublé le code pour en avoir un deuxième

mais peu être que c'est inutile, je vais essayé, penses tu que cela puisses avoir un rapport avec mon problème de récupération de la valeur
du 2eme menu déroulant

Re: Récupérer 'value' dans une 'function' ajax

Posté : 14 sept. 2010, 10:04
par Aureusms
Bah je pense car tu mets document.getElementById("codedial") et (toujours en lisant en travers) il me semble que tu récupères la même value de l'option à chaque fois.
Comment s'appelle les deux id des <SELECT> ? Si c'est 'codedial' et 'intitule', je crois qu'on a avancé...

Re: Récupérer 'value' dans une 'function' ajax

Posté : 14 sept. 2010, 12:34
par athome
voici les select des 3 menus déroulants :

select_codedial.php :
<select id='codedial' name='codedial' onchange="ajax(this)"> => celui là est bien récupéré, mais il se situe sur la page du formulaire

select_unite.php :
<select id='unite' name='unite'> => celui là et l'autre se récupèrent normalement via ajax de la ligne ci-dessous, se situent dans des pages séparées

select_intitule.php :
<select id='intitule' name='intitule'> => idem

avec cette ligne :
var param = strthis.value;
                var codedial = document.getElementById("codedial").options[document.getElementById("codedial").selectedIndex].value;
qui est doublé, je pensais récupérer toutes les valeurs de $intitule & $unite , mais à part le bon tri de la requête je ne récupère pas l'id, le value...

je ne vois pas trop comment la modifier, car quand j'essaie, je perds le tri des requêtes, si tu as une idées pour réécrire cette ligne, en faisant passer toutes les données ;)

Re: Récupérer 'value' dans une 'function' ajax

Posté : 15 sept. 2010, 10:52
par Aureusms
Pour le débuggage télécharge firebug sous firefox. Ce module te permet de faire des stops dans le javascript (ou autre) en cours et ainsi d'y aller étape par étape.
Sinon pour ton problème regarde vers "unite" :
var unite= document.getElementById("unite").options[document.getElementById("unite").selectedIndex].value;
Je te laisse chercher un peu...

Re: Récupérer 'value' dans une 'function' ajax

Posté : 15 sept. 2010, 15:55
par athome
et bien j'ai trouvé la solution alors, je reviens la poster !

je me suis vraiment pris la tête pour rien, car vous allez tomber de haut

cela vient du navigateur !!!

et oui cela fonctionne très bien sur IE mais pas du tout sur firefox, pourquoi ???

je ne sais pas encore, je vais chercher, mais si vous savez pourquoi, merci de laisser un petit mot ici, avant que je clôture ce topic ;)