France Hardware : Forums de discussion - Découvrez notre nouveau comparateur d'offres Internet
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
29 521 membres enregistrés - 2 069 420 posts - 122 057 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Fonction Javascript qui ne se lance qu'avec un alert à l'intérieur
142 connectés(record : 2799 le 29 May 2016 - 15 h 34)

Vous devez vous connecter pour répondre au topic.
Fonction Javascript qui ne se lance qu'avec un alert à l'intérieur

axou1er


Messages : 344
Inscrit le 21/11/06
Ville : Villeurbanne
Non connecté
  Posté le 17 April 2013 - 14 h 14 m 01 s
Bonjour,

je viens vous voir parce que je rencontre un problème et je ne trouve pas la solution.
Je suis entrain de faire un site et je bloque sur le souçi suivant:
sur une page, j'affiche 3 select. Le 1er est en dur dans la page et le 2ème et 3ème sont récupérés en Ajax.
Le 2ème est récupéré correctement à chaque fois mais ma fonction récupérant le 3ème ne se lance que si je mets un alert dedans. Autrement dit, mon 3ème select est bien récupéré si je mets un alert.

je vous mets l'enchainement :

<select name="choix_cat" id="choix_cat" onchange="recup_cat2()">
<option value=0>Choix</option>
<option value=100 <?php if($id==100){echo"selected";} ?> >Livres / BD</option>
<option value=200 <?php if($id==200){echo"selected";} ?> >Musique / Instruments</option>
<option value=300 <?php if($id==300){echo"selected";} ?> >DVD / Blu-ray</option>
<option value=400 <?php if($id==400){echo"selected";} ?> >Jeux vidéos</option>
<option value=500 <?php if($id==500){echo"selected";} ?> >Téléphonie / Tablettes</option>
<option value=600 <?php if($id==600){echo"selected";} ?> >Informatique / Logiciels</option>
<option value=700 <?php if($id==700){echo"selected";} ?> >Image / Son</option>
<option value=800 <?php if($id==800){echo"selected";} ?> >Maison / Electroménager</option>
<option value=900 <?php if($id==900){echo"selected";} ?> >Sports / Loisirs</option>
<option value=1000 <?php if($id==1000){echo"selected";} ?> >Mode / Beauté</option>
<option value=1100 <?php if($id==1100){echo"selected";} ?> >Véhicules</option>
<option value=1200 <?php if($id==1200){echo"selected";} ?> >Autre</option>
<option value=1400 <?php if($id==1400){echo"selected";} ?> >Immobilier</option>
<option value=1500 <?php if($id==1500){echo"selected";} ?> >Emploi</option>
<option value=1600 <?php if($id==1600){echo"selected";} ?> >Covoiturage</option>
</select>
<script>
recup_cat2();
</script>
<span id="choix_cat2_box"></span>
<script>
recup_cat3();
</script>
<span id="choix_cat3_box"></span>


Je lance les fonctions à la suite car je veux remplir mes select avec ce que l'utilisateur a choisi dans le menu..


et mes fonctions :

function recup_cat2(){
new Ajax.Request(
'../php/ajax.php',
{
method: 'get',
parameters: {categ: $('choix_cat').value },
onSuccess: function(transport, json) { $('choix_cat2_box').innerHTML=(transport.responseText); },
onFailure: function() { alert("Une erreur est survenue lors de l'appel AJAX.\nRecharger la page devrait résoudre le problème.") }
}
);
}

function recup_cat3(){
new Ajax.Request(
'../php/ajax.php',
{
method: 'get',
parameters: {cat2: $('choix_cat2').value, cat1: $('choix_cat').value},
onSuccess: function(transport, json) { $('choix_cat3_box').innerHTML=(transport.responseText); },
onFailure: function() { alert("Une erreur est survenue lors de l'appel AJAX.\nRecharger la page devrait résoudre le problème.") }
}
);
}


A noter que j'utilise prototype. Je ne mets pas le contenu de la page Ajax.php car tout fonctionne bien de ce côté.

Si quelqu'un a une idée pour me décoincer, je suis preneur! Merci d'avance!



Nouveau site de battles de photos: www.battlephotos.fr

grabber
Coordinateur
MacBook Pro Powered

Messages : 9 506
Inscrit le 06/03/02
Ville : Angers
Non connecté
  Posté le 10 May 2014 - 17 h 58 m 22 s
sous proto je sais pas je l'utilise plus depuis 10 ans, mais en tout cas ton probleme est un souci de requete synchrone ou asynchrone, il faut que ta seconde fonction qui gere le 3eme select attende le resultat pour se lancer sino ncela ne marchera jamais.
en jquery, dans l'appel de l'ajax, on ajoute : async: false



:firefox: :ol:

Page genérée en 0.1243 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL | Actualité ADSL | Deligo | Appareil photo | Commande Au Volant
Creative Commons
Message Boards and Forums Directory