Bonjour,
je suis actuellement dans le développement d'un formulaire et je butte sur un point assez bizarre.
J'utilise la bibliothèque jquery pour ajouter de l'ajax dans mon formulaire sur mes listes déroulantes liées.
Mon formulaire fonctionne très bien pour le remplissage mais me pose des problèmes lorsque je dois le pré remplir.
En effet les listes déroulantes sont liées, un produit => numero_release => activité.
Afin de pré remplir le formulaire, je lui passe un numéro de produit et un code de référence (qui identifie dans une base de donnée un document appartenant à un numero de release et une activité).
Je vais donc expliquer mon problème, lorsque je passe mes 2 paramètres au formulaire, celui ci me les affiche très bien en PHP avec un echo mais les listes déroulantes ne se charge pas comme il faut.
Voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $("#product").val(produit); //je sélectionne la bonne option de mon select product productAjax(); // je charge la liste rel en fonction du select de product $("#rel").val('<?php echo $rel; ?>'); // je sélectionne la bonne option de mon select rel releaseAjax(); // je charge la liste activity en fonction du select de rel $("#activity").val('<?php echo $act; ?>'); // je sélectionne la bonne option de mon select activity
Le problème vient du fait que les listes doivent se charger trop vite. Si je place des alert() comme ceci
tout se passe bien, alors que si je les enlève, les $("xxxx").val() sont vide et mon formulaire ne se charge pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $("#product").val(produit); productAjax(); alert('tempo'); $("#rel").val('<?php echo $rel; ?>'); releaseAjax(); alert('tempo'); $("#activity").val('<?php echo $act; ?>');
J'ai aussi essayé de débugger avec firebug en pas à pas et ça marche car le pas à pas freine les $("xxxx").val() pour laisser charger les select.
Je pense donc que la solution peut venir d'une sorte de temporisation à la place des mes alertes qui sont vraiment contraignant pour mon formulaire.
Merci d'avance
PS : Je pourrais bien sur charger toute les listes avec du PHP, mais la fonction jquery $("xxxx").val() = me permet de sélectionner l'option voulu ce qui allège grandement le code.
Partager