Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
je suis débutant et j'essaye de comprendre la notion de formulaire.
J'ai un problème :
Quand je passe sur mon controlleur LoginController, je n'arrive pas à tester
si une saisie a été faite; et $request->isPost() est toujorus à vide.
A votre avis pourquoi ?
merci de votre aide
public function loginAction()
{
$form = new Application_Form_LoginForm();
$request = $this->getRequest();
if ($request->isPost()) {
$formData = $request->getPost();
if ($form->isValid($formData)) {
$email = $form->getValue ( 'email' );
$password = $form->getValue ( 'password' );
var_dump(array($email,$password));
$this->_helper->redirector ( 'index', 'index' );
//return $this->_helper->redirector('Index','index');
}
}Hors ligne
Je ne vois pas ce qu'il manque dans ton code désolé,
Mais je te passe une de mes action de formulaire, peut être que cela pourra t'aider :
public function createAction()
{
// Instanciation
$form = new TonFormulaire();
// Si post
if($this->getRequest()->isPost()) {
// Si valide
if($form->isValid($_POST)) {
// Traitements
// + forward vers l'index du controller au besoin
return $this->_forward('index');
}
}
// Set de l'action du form
$form->setAction('/administration/page/create');
// Je rentre le formulaire dans une variable de vue
$this->view->form = $form;
}Dernière modification par TeChn4K (30-07-2010 08:21:36)
Hors ligne
Merci, mais il n'y a pas de différence effectivement.
Cela vient de
$form = new Application_Form_LoginForm();
$request = $this->getRequest();
if ($request->isPost()) {
$formData = $request->getPost();
...isPost n'est pas valorisé !
Deux constats :
1. si je fait un dump de request, cela me donne :
object(Zend_Controller_Request_Http)#21 (15) { ["_paramSources:protected"]=> array(2) { [0]=> string(4) "_GET" [1]=> string(5) "_POST" } ["_requestUri:protected"]=> string(160) "/Login/login?zone=Asia+regional&period=2010&start+date=&finish+date=&version=no+version&cover_onsale=cover+date&email=sfdsfds&password=fdsfs&submit=Se+connecter" ["_baseUrl:protected"]=> string(0) "" ["_basePath:protected"]=> NULL ["_pathInfo:protected"]=> string(12) "/Login/login" ["_params:protected"]=> array(3) { ["controller"]=> string(5) "Login" ["action"]=> string(5) "login" ["module"]=> string(7) "default" } ["_rawBody:protected"]=> NULL ["_aliases:protected"]=> array(0) { } ["_dispatched:protected"]=> bool(true) ["_module:protected"]=> string(7) "default" ["_moduleKey:protected"]=> string(6) "module" ["_controller:protected"]=> string(5) "Login" ["_controllerKey:protected"]=> string(10) "controller" ["_action:protected"]=> string(5) "login" ["_actionKey:protected"]=> string(6) "action" } loginActionmais dans l'URL les paramètres sont passés comme en GET
http://127.1.0.0/Login/login?zone=Asia+regional&period=2010&start+date=&finish+date=&version=no+version&cover_onsale=cover+date&email=sfdsfds&password=fdsfs&submit=Se+connecter
enfin, quand je fais un test $request->isGet() à la place de Post, alros
je vais un message d'erreur 'La page n'est pas redirigée correctement'
Dois-je paramètrer le boostrap avant ?
Instancier le FRONT CONTROLLER (et ou ?)
merci
yonamoke
Hors ligne
Désolé, je ne sais pas, je passe la main ..
Par contre pour tes var_dump ou print_r, copie/colle le code source plutot que ce qui s'affiche sur ton navigateur, tu verras c'est plus lisible ![]()
Hors ligne
hello,
je vais poser ma question différemment.
Pour après une saisie, je n'ai dans ma Zend_Controller_Request_Http Object que :
Zend_Controller_Request_Http Object
(
[_paramSources:protected] => Array
(
[0] => _GET
[1] => _POST
)
[_requestUri:protected] => /Login/Index
[_baseUrl:protected] =>
[_basePath:protected] =>
[_pathInfo:protected] => /Login/Index
[_params:protected] => Array
(
[controller] => Login
[action] => Index
[module] => default
)
[_rawBody:protected] =>
[_aliases:protected] => Array
(
)
[_dispatched:protected] => 1
[_module:protected] => default
[_moduleKey:protected] => module
[_controller:protected] => Login
[_controllerKey:protected] => controller
[_action:protected] => Index
[_actionKey:protected] => action
)sans que la propriété stockée dans $this->getRequest()->isPost() soit à true au lieu de false ?
qui peut m'aider ?????
merci
Hors ligne
hello,
j'ai trouvé !
En fin de compte, ma fonction isPost se terminait par
$this->_helper->redirector ( 'Index', 'Index' );
Quand je l'enlève, le test se fait bien. Bizzare !
Qui peut me dire :
1. Pourquoi cette ligne bloquait tout sans le dire
2. Comment faire une redirection vers le contrôlleur d'origine depuis cette action ?
merci
Yonamoke
Hors ligne
Bonjour tout le monde,
peut être que cela aidera les débutants comme moi :
1. Pour aller dans un autre controller :
$this->_forward('action', 'controller');
2. Pour aller dans le même controller :
$this->_redirect('action');
voila
on peut fermer le post !
merci
Hors ligne
Pour les erreurs: est tu sur d'afficher les erreurs? As tu fait un controller pour tes erreurs? as tu fait des try catch?
Pour info en + : $this->renderScript change la vue.
Et les sujets ne sont pas cloturer, c'est à toi de mettre un résolu dans le titre (LIRE LES MESSAGES EPINGLES QUI SE NOMME GENERALEMENT REGLES A LIRE!!!!!!!!!!!!!!!!!)
Hors ligne
pas envie de répondre face à ce manque de courtoisie ...
Hors ligne