Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
bonjour,
j'ai un premier formulaire où j'insère quelques informations. Celui ci me renvoi sur un second formulaire.
Une fois ce second formulaire rempli, je souhaiterai insérer dans ma base les informations de mon premier formulaire et de mon second.
Je souhaiterai donc savoir si on peut passer un tableau (qui résulte d'un getValues() ) par l'URL ?
Si oui comment faire ?
J'ai tenter de faire
$formData=$form->getValues();
$this->_redirect('GererStock/produitlivraison/livraison/'.$formData);
Je n'ai aucune erreur, et dans mon URL j'ai :
http://localhost/center/GererStock/produitlivraison/livraison/Array
Je récupère mes données comme ceci :
if ($this->_hasParam('livraison'))
{
$livraison = $this->_getParam('livraison');
$this->view->liv=$livraison;
}
Est ce la bonne méthode pour passer mon tableau et le récupérer ?
Merci
Hors ligne
Pour découper ton formulaire en plusieurs pages, tu dois utiliser les SubForms avec la méthode
$form->addSubForm($subform, 'subform');
Vois ici pour plus de détails. Malheureusement cette partie n'a pas été traduite dans la doc.
Dernière modification par Djules (30-04-2009 11:17:55)
Hors ligne
pourquoi passer par l'url alors qu'il suffit de garder les données de ton premier formulaire en session ???
A+JYT
Hors ligne
merci pour vos réponses
j'ai retenue la réponse de djules pour mon cas
Hors ligne
Oui convertir un tableau vers une chaine, en PHP, ça a toujours donné 'Array' en effet :-D
En revanche, le sérialiser, puis le base64_encoder permet de l'ajouter dans l'URL, mais ça n'est pas recommandé.
D'abord, parce qu'une URL ça doit pas être trop long, or un tableau sérialisé ca peut vite devenir très long.
Ensuite, parce qu'un pirate potentiel peut facilement injecter ce qu'il veut dans l'URL, et donc dans le tableau qui sera recrée derrière, il peut par exemple créer un tableau avec une profondeur de 400.000 et 1 millions d'éléments, très facilement, ce qui aura pour conséquence de crasher le serveur (sauf si PHP est à jour et que max_input_nesting_level est à un niveau raisonnable dans PHP.ini)
La session reste encore le mieux pour passer ce genre de variables ;-)
Hors ligne