2009-07-02 5 views
3

J'utilise Jquery et cakephp pour mon application.Effectuer des validations pour le formulaire

J'ai un formulaire créé dans ma page en utilisant $form->create. Le formulaire contient beaucoup de champs que l'utilisateur va remplir et soumettre, les données sont enregistrées par

function submit($id = null) 
{ 
foreach ($_POST as $key => $value): 

     $this->data['Result']['form_id']=$id;//form id 
     $this->data['Result']['label']=$key;//this is the fieldname 
    $this->data['Result']['value']=$value;//fieldvalue 

endforeach; 

    $this->Session->setFlash('Your entry has been submitted.'); 
    } 

Maintenant, je veux réaliser dans le formulaire de validation comme si toutes les valeurs de champ ont été remplies. S'il n'est pas rempli, il doit afficher une alerte ou un message demandant à l'utilisateur de remplir le champ approprié. Comment je fais ça?

Encore une suggestion nécessaire: ce qui serait mieux, la validation côté client ou côté serveur?

+1

Pourquoi utilisez-vous id $ _POST vous créez des formulaires avec le FormHelper? –

+0

* Si *, je voulais dire si, pas id .. –

Répondre

2

CakePHP a une validation intégrée: consultez la documentation here. Vous lui dites essentiellement les différentes conditions que doit remplir chaque attribut de votre modèle ("n'est pas vide", etc.). Celles-ci sont ensuite vérifiées automatiquement lorsque vous appelez la méthode save - assurez-vous de vérifier la valeur de retour de cet appel de fonction.

Un exemple de la page de la documentation liée:

<?php 
class User extends AppModel { 
    var $name = 'User'; 
    var $validate = array(
     'login' => 'alphaNumeric', 
     'email' => 'email', 
     'born' => 'date' 
    ); 
} 
?> 
+0

Ya mais les champs de formulaire vont changer pour chaque forme, SO en tat sens comment puis-je garder comme email, login et tout. – useranon

+0

Utilisez la méthode beforeValidate() dans le modèle pour modifier dynamiquement $ validates en conséquence. Définissez un champ masqué (ou utilisez Session) pour indiquer à beforeValidate comment modifier les validations pour différents formulaires. http://book.cakephp.org/view/682/beforeValidate –

Questions connexes