Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 03-08-2007 15:23:31

jzender
Membre
Date d'inscription: 12-07-2007
Messages: 25

Conservation des données d'un formulaire lors d'une validation

Bonjour à tous !

J'effectue le contrôle d'un formulaire côté serveur à l'aide de validateurs. Problème : dans le cas où un champ du formulaire n'est pas valide, l'utilisateur retombe sur un formulaire vierge. Comment faire pour garder ces informations dans la page ?

Merci !
J-Zender.

Hors ligne

 

#2 03-08-2007 17:17:48

yannux
Membre
Lieu: Rennes
Date d'inscription: 07-04-2007
Messages: 284
Site web

Re: Conservation des données d'un formulaire lors d'une validation

Utiliser le champ value=""  des balises input en faisant un echo des variables.
Après tout dépend comment est ton code pour le "comment faire ?"
Tu dois passer tes variables à la vue du formulaire dans tous les cas smile


Société : Direct Info Service

Hors ligne

 

#3 14-08-2007 16:33:39

zudre
Membre
Date d'inscription: 10-05-2007
Messages: 21

Re: Conservation des données d'un formulaire lors d'une validation

Tu pourrais aussi utiliser un call Ajax pour faire ta validation.  Si erreur, tes champs sont tous remplis.

Hors ligne

 

#4 27-08-2007 17:04:09

jzender
Membre
Date d'inscription: 12-07-2007
Messages: 25

Re: Conservation des données d'un formulaire lors d'une validation

Peux-tu m'en dire un peu plus Zudre stp ? Ajax, je prévois de le découvrir dans une seconde partie de mon projet, si tu as des pistes ou des liens, ils sont les bienvenus smile

Hors ligne

 

#5 31-10-2007 20:03:19

dug
Membre
Date d'inscription: 15-10-2007
Messages: 23

Re: Conservation des données d'un formulaire lors d'une validation

Bonjour,

Je me suis penché sur la question et voilà ou j'en suis :

Outils utilisés :

    - JQuery
    - Zend_Json

   
Code HTML/Javascript/AJAX :

Code:

<script language="javascript" type="text/javascript">
$(document).ready(function() {
    $("#inscription").click(function() {
        var formData = $("#formulaire").serialize();
        $.ajax({
            type: "POST",
            url: "/inscription/check",
            data: formData,
            datatype: "json",
            processData:false,
            success: 
                function(json){    
                    errors = eval(json);            
                    showErrors(errors);
                }
        });
    });
});

function showErrors(array) {

    if(array.length>0) {
        $("#divErrors").css("display","block");
        $("#errors").empty();
        $.each(array, function(i, val) {                    
            $("#errors").append("<li>"+val+"</li>");
        });
    } else {
        window.location.href="";
    }
}
</script>
<div id="divErrors" style="display:none;">
    <strong>Erreur(s) : </strong>
    <ul id="errors">    
    </ul>
</div>
<form id="formulaire" method="post">
    Email : <input type="text" name="user[email]" /><br />
    Nom : <input type="text" name="user[nom]" /><br />
    Prénom : <input type="text" name="user[prenom]" /><br />    
    <input type="button" id="inscription" value="Valider" />
</form>

Controller Inscription :

Code:

<?php

class InscriptionController extends Zend_Controller_Action
{
    public function checkAction()
    {
        $errors = array();
        
        $data = $this->_request->getParam('user'); // Récupère le tableau de valeurs user[]

        ... ici tu filtres les données de $data ...
        
        if (count($errors)==0) {
            Zend_Loader::loadClass('User');
            $user = new User();
            $user->insert($data);
        }
        
        Zend_Loader::loadClass('Zend_Json');
        $this->view->errors = Zend_Json::encode($errors);
    }
}

Ma vue (inscription/check.phtml)

Code:

<?php echo $this->errors; ?>

Je ne suis peut-être parti dans une mauvaise voie... ,dans ce cas, je comptes sur vous pour m'en informer ! smile

A+

Dernière modification par dug (31-10-2007 20:04:37)

Hors ligne

 

#6 02-11-2007 10:09:51

superloulou77
Membre
Date d'inscription: 11-10-2007
Messages: 10

Re: Conservation des données d'un formulaire lors d'une validation

Il faut que dans ton controller tu repasse un objet à ta vue

$this->view->monObjet= $monObjet;

et ensuite tu fais cela dans ta vue

Code:

<div id="contactadd">
<table>
        <tr>
            <td><?php echo $this->formLabel('contact_nom', 'nom');?></td>
            <td><?php echo $this->formText('contact_nom', $this->$monContact->contact_nom, array('class' => 'contactinput')) ?></td>
        </tr>
</table>

J'utilise les fonctions de zend pour génerer un champ texté.
cela revien a faire

Code:

<input type="test" name="contact_nom" value="<?php echo $this->$monContact->contact_nom?>" />

Bien evidement  cela est un exemple avec un object contact. je n'utilise pas d'accesseur get pour accéder à mes proprietes d'objet si cela est ton cas le code sera comme ca

Code:

<input type="test" name="contact_nom" value="<?php echo $this->$monContact->getNom();?>" />

Bonne chance

Dernière modification par superloulou77 (02-11-2007 10:10:34)

Hors ligne

 

#7 05-11-2007 18:29:14

fblutch
Membre
Date d'inscription: 15-09-2007
Messages: 30

Re: Conservation des données d'un formulaire lors d'une validation

j'ai le meme probleme sur mon post:
http://www.z-f.fr/forum/viewtopic.php?id=493

moi j'utilise la façon du tutorial qui est ici pour le formulaire:
http://g-rossolini.developpez.com/tutor … odele#LV-I

mais je n'arrive pas a récupéré les données si elles sont erroné.
Quelqu'un pourrais me dire comment faire ? tout est dans le tuto ici:
http://g-rossolini.developpez.com/tutor … odele#LV-I

Merci smile

Hors ligne

 

#8 06-10-2008 09:51:23

Julien Breux
Nouveau membre
Date d'inscription: 17-09-2008
Messages: 8

Re: Conservation des données d'un formulaire lors d'une validation

Tu peux simplement utiliser la méthode populate :

Code:

$post = $this->_request->getPost();
$form->populate($post);

Dernière modification par Julien Breux (06-10-2008 09:51:54)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages