Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2007, 14h31   #1
Invité de passage
 
Inscription : avril 2003
Messages : 2
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 2
Points : 0
Points : 0
Par défaut [Prototype] Problèmes de timing / rafraichissement

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
Code :
1
2
$('btnModifier').show();
$('btnAjouter').hide();
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.
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

Code :
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
Si je renvoie mon formulaire, c l'id précédent qui est envoyé

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
gdzami est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 14h42   #2
Responsable Modération
 
Homme
Inscription : janvier 2007
Messages : 9 315
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2007
Messages : 9 315
Points : 15 609
Points : 15 609
Bonjour,
Citation:
Envoyé par gdzami
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.
As-tu essayé au lieu de (bug IE7, je crois) ?

A+
E.Bzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 14h43   #3
Responsable Modération
 
Homme
Inscription : janvier 2007
Messages : 9 315
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2007
Messages : 9 315
Points : 15 609
Points : 15 609
En complément : les fonctions hide() et show() seraient bien utiles

... et pour le 2) ... je sais pas

A+
E.Bzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 14h59   #4
Invité de passage
 
Inscription : avril 2003
Messages : 2
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 2
Points : 0
Points : 0
En fait ce sont les fonctions de Prototype (v1.5.0)

hide : http://prototypejs.org/api/element/hide
Code :
1
2
3
4
hide: function(element) {
  $(element).style.display = 'none';
  return element;
}
show : http://prototypejs.org/api/element/show
Code :
1
2
3
4
show: function(element) {
  $(element).style.display = '';
  return element;
}
Donc a priori, ta suggestion est déjà intégrée
Merci de la réponse en tout cas
gdzami est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h01.


 
 
 
 
Partenaires

Hébergement Web