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

Petit nouveau ! | 9 Messages

10 sept. 2010, 17:09

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>

Petit nouveau ! | 9 Messages

13 sept. 2010, 10:39

un petit up, pour mon soucis de value perdu dans ajax ;)

ViPHP
ViPHP | 1996 Messages

13 sept. 2010, 18:14

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;
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Petit nouveau ! | 9 Messages

14 sept. 2010, 09:27

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

ViPHP
ViPHP | 1996 Messages

14 sept. 2010, 10:04

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é...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Petit nouveau ! | 9 Messages

14 sept. 2010, 12:34

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 ;)

ViPHP
ViPHP | 1996 Messages

15 sept. 2010, 10:52

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...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Petit nouveau ! | 9 Messages

15 sept. 2010, 15:55

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 ;)