IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Zend_Form & Dojo, validation côté serveur.


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Par défaut Zend_Form & Dojo, validation côté serveur.
    Bonsoir,
    Je ne parviens pas à réaliser la validation des champs côté serveur, en utilisant dojo.

    J'ai par exemple, un champ email, de type ValidationTextBox, je tente de surcharger la methode "validator" pour exécuter une requête ajax vers le controller/action contenant mon formulaire, afin de valider ce champ.

    Sauf qu'étant une requête ajax, c'est un peu compliqué sachant que le validateur de dojo attend un résultat immédiat ..

    Comment faites-vous vos validations ?
    Faut-il maintenir 2 validations non-homogène .. ?

    Je préfère avoir qu'une validation côté serveur et dojo affiche les tooltips (messages) et les status (décorateurs rouges et icônes) des champs en fonction de celle-çi ...

    De plus, lorsque je tente de récupérer mes éléments de formulaire, je me retrouve avec tout ceux ajouté par dojo, je dois passer par dijit.byId("form_id").get("value") pour avoir les clefs de mes ids de mes propres champs .. :S !

    Toute aide est la bienvenue !

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Par défaut
    j'étoffe un peu mon message précédent, si on regarde dans la doc de dojo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dijit.byId("validationTextBoxNodeId").validator = function (value, constraints) {
     
        // Check that email has not been used yet.
        if (some-checks) {
            return true;
     
        } else {
            return false;
        }
    }
    Pour effectuer des contrôles sur les champs, côté serveur, c'est cette méthode qu'il faut surcharger, puis assigner le message d'erreur comme attribut "invalidMessage" afin de l'afficher dans la tooltip. En retournant "false", dojo ajoute bien le décorateur erreur au champ.

    Maintenant, je souhaiterais effectuer un ajax et selon le retour de cette ajax, retourné "true" ou "false" selon la validation côté serveur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    var form = dijit.byId('reservation_form');
    values = form.get("value");
        for (x in values) {
    		dijit.byId(x).validator = function (value) {
    			var invalidMessage = [];
     
    			var xhrArgs = {
    		    	form: form.domNode,
    		    	sync: true,
    		        handleAs: "json",
    		        preventCache: true,
    		        load: function(data, status) {
    		        	if (data.errors[x]) {
    		        		for (y in data.errors[x]) {
    		        			invalidMessage.push(data.errors[x][y]);
    		        		}
    		        	}
    		        };
    		    }
     
    		    var deferred = dojo.xhrPost(xhrArgs);
     
    		    if (invalidMessage.length) {
    		    	this.set("invalidMessage", invalidMessage.join("\n");
    		    	return false;
    		    }
     
    		    return true;
    		}
        }
    voilà, quelque chose du genre, pour pouvoir surcharger chacun des champs de mon formulaire et les valider côté serveur avec les validateurs de Zend_Validate_*

    Des idées sur comment faire ? Récupèrer les champs de mon formulaire sans devoir passer par "form.get('value')" ? (là ça fonctionne pas )

    j'avais aussi le désire d'utiliser un objet dojo, car dans zend, si on assigne:

    "validator" => "custom.validationXhr" par exemple, ou "validationXhr" est un objet perso pour valider, le constructor reçoit bien les arguments values et constraints, mais peu importe le retour, il n'est pas pris en compte ..

Discussions similaires

  1. [Struts] Validator côté serveur
    Par MasterMic dans le forum Struts 1
    Réponses: 8
    Dernier message: 22/09/2011, 14h48
  2. Réponses: 4
    Dernier message: 13/04/2008, 16h11
  3. [Validator] validation coté serveur
    Par _juel_ dans le forum Struts 1
    Réponses: 2
    Dernier message: 17/06/2006, 11h48
  4. [Struts 1.2] : validation coté serveur
    Par richard_34b dans le forum Struts 1
    Réponses: 3
    Dernier message: 15/09/2004, 15h42
  5. [ Struts ][ Validator ]validation côté serveur
    Par tiSioux dans le forum Struts 1
    Réponses: 4
    Dernier message: 29/06/2004, 09h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo