Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
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 14/03/2011, 12h50   #1
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
Par défaut [ZF1.9.2] désactivation bouton après clic

Bonjour,
Voilà je rencontre un problème avec les personnes "impatientes" avec le mon formulaire. Lors de la validation du formulaire (donc clic sur bouton), un traitement est lancé et met queqlues secondes à répondre et donc rediriger vers la bonne page.

J'aimerais trouver une parade :
- soit désactiver le bouton après le clic
- soirt afficher un popup qui empêcherait le clic, et cette popu se fermerait après le retour du traitement.

Quelle est la meilleure solution ? et comment la mettre en place ?

D'avance merci.
Vince
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 14h40   #2
Membre du Club
 
Inscription : août 2007
Messages : 169
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 169
Points : 50
Points : 50
Bonjour,
à mon avis en javascript tu peux bien solutionner ton soucis. je ne vois de relation avec Zend Framework
van-bom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 15h59   #3
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
si mon formulaire était créé en HTML directement, effectivement que j'aurai fait un bout de javascript pour le désactiver.
mon problème est que le bouton est un element Zend, donc comment l'intercepter en javascript ?
merci.
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 21h18   #4
Membre du Club
 
Inscription : août 2007
Messages : 169
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 169
Points : 50
Points : 50
Bonjour ,
(si j'ai bien compris)
lors de la création du formulaire via Zend_Form , tu peux lier (par exemple ) une fonction javascript à l'événement clic du bouton :
Code :
1
2
3
 
		$envoyer = new Zend_Form_Element_Button('envoyer');
		$envoyer->setAttribs(array('onclick'=>'sendMessage()'));
puis dans un fichier javascript ( dans le répertoire public/js/functions.js par exemple ) tu définis la fonction sendMessage() :
Code :
1
2
3
4
5
 
function sendMessage()
{
  //Traitement ....... 
}
dernière étape , est de récupérer la le fichier javascript functions.js ( dans Layout ( si tu utilises )ou dans une vue ) :
Code :
1
2
 
<?php echo $this->headScript()->prependFile('/js/functions.js')?>
donc ( si j'ai bien compris ton soucis ) c'est la solution . dans la fonction sendMessage() tu peux gérer comme tu veux : désactiver le boutton ou autre .....
van-bom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 14h27   #5
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
salut,
finalement, j'ai trouvé une solution, enfin presque :

Code :
1
2
3
$form->addElement('submit', 'submit', array(
            'label' => 'Payer',
            'attribs' => array('onclick' => 'this.disabled=true;return true')))
je dis presque car pour la version locale de mon appli, ça fonctionne, mais pas sur ma version serveur ...

je ne comprends pas pourquoi j'ai une différence de traitement
merci
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 15h09   #6
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
j'ai un début de solution, il me manquait un ';' après le 'return true'.
ce qui est bizarre, c'est ce code marche sur un formulaire, mais pas l'autre ...
vince29 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 20h01.


 
 
 
 
Partenaires

Hébergement Web