Bonjour,
Je suis en train de développer une interface d'admin en Ajax et j'ai 2 problèmes que ma courte expérience ne me permet pas de résoudre.
Pour info, j'utilise Prototype
Les 2 sont indépendants mais ont, semble-t-il la même cause.
Premier problème :
J'ai un formulaire pour l'ajout ou l'édition d'items. Par défaut, il est vide, prêt pour un ajout (avec un bouton ajouter en bas). Quand on glisse un item dessus, le formulaire se met à jour, le bouton Ajouter disparait et le bouton Modifier apparait.
Concrètement
Sous Firefox pas de soucis. Sous IE7, le hide fonctionne (quoique l'espace reste réservé, comme un visibility:hidden, plutôt qu'un display:none), mais pas le show.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $('btnModifier').show(); $('btnAjouter').hide();
Je n'ai pas trouvé de moyen de forcer le rafraichissement des boutons pour les forcer à s'afficher ou disparaitre correctement sous IE7
Deuxième problème
Pour pouvoir gérer l'upload de fichier, je soumets mon formulaire en 2 fois.
J'envoie d'abord mes données sérialisées via un Ajax.Request, qui me renvoie l'id de l'enregistrement créé. J'affecte cet id à un input hidden, puis je soumets mon formulaire dans une iframe cachée, qui ne gère que l'upload.
Si je fais un alert de mon formulaire sérialisé, avant le submit(), j'ai bien form_id=XX, mais quand je soumets le formulaire juste après le form_id est vide
Si je renvoie mon formulaire, c l'id précédent qui est envoyé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $('form_id').value = transport.responseText; alert($('form').serialize()); // le form_id est bien égal à responseText ici $('form').submit(); // je récupère un form_id vide ici
Pour le 2é problème, je suis pas sûr que ce soit la meilleure technique, je vais probablement changé.
Mais si qqn pouvait m'expliquer ces problème de timing et de rafraichissement d'affichage ou de valeur de variable, je lui en serais très reconnaissant.
Merci d'avance de votre attention et de votre aide
Seb
Partager