Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour j'aimerais passer 2 actions javascripts sur un onclick, mais je ne trouve pas de solutions !
Voici d'abord les deux input fonctionnant bien séparément :
Une confirmation
et une barre de progression
j'ai bien sur testé :
Mais ça ne fonctionne pas, la deuxième action ne se réalise pas
Voici le second script repris sur le web donnant une barre de progression
merci d'avance pour votre aide
Hors ligne
Bonjour,
Sans avoir lu ton code de barre de progression, ton problème est normal au niveau conceptuel.
Je m'explique.
1) Une barre de progression est dans un état d'attente d'un évènement qui lui notifie que l'action est terminée, auquel cas, elle affiche cet état et disparait. De plus une barre d'action étant par définition synchrone dans son propre thread, il est normal que tout le code que tu demandes de traiter à la suite soit lui aussi dépendant de la terminaison de la progressbar pour pouvoir être évalué (on est sur du synchrone).
2) Il faut donc séparer les threads de la manière suivante (algo du principe en exemple):
a) Ton bouton appele une fonction Js.
b) Ta fonction js demande confirmation du lancement du traitement. Si non > exit.
c) On lance le traitement en asynchrone avec la progress bar en parallèle et on bind le retour event de ton traitement avec celui de ta progressbar.
Voiloù la bonne méthode
Dernière modification par Jc (18-07-2011 15:13:53)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Humm, je ne crois être au niveau de ce que tu me proposes mais j'avance un peu quand même, avec le code ci-dessous
tout se passe bien en cas de confirmation positive, mais en cas de réponse négative au confirm cela exécute quand même le formulaire
Hors ligne
Réponse
[c]onsubmit="return showWait();"[/c]
---------------------------------------------
[c]function showWait()
{
if (confirm('Etes-vous sûr de vouloir modifier ?') ){
jsWait_defaultInstance = new jsWait('jsWait_defaultInstance', "Modification en cours");
jsWait_defaultInstance.show();
return true
}
return false
}[/c]
Dernière modification par athome (18-07-2011 16:37:12)
Hors ligne
Bonjour,
En fait, étant donné le contexte, ton traitement = ta requête PHP à ton serveur en Ajax en asynchrone, et en attendant le retour, tu affiches ta progressbar, et sur l'event de ton readystate==4, tu termines ta progressbar. En faisant ainsi par contre, js ne sachant pas ce qui se passe sur le serveur ne pourra pas afficher une progression en % réaliste, il te faudra donc afficher une progressbar à progression "infinie".
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Pages :: 1