2010-12-04 1 views
2

Zend newbie ici ... Et juste pour le rendre meilleur, ma mission est de construire sur le préexistant de quelqu'un d'autre Site de Zend.

(BTW: version de zf show -> Zend Framework Version: 1.11.1 - Je semble avoir Zend_Form).

Voici le bit curieux. Tous les formulaires sont construits en HTML dans les vues. Ils semblent fonctionner, même si je ne peux pas comprendre comment - surtout vu ce que je vois.

J'ai suivi la convention et a créé une vue d'une forme de test et écrit sous la forme:

<form action="<?php echo $this->url(array('controller'=>'ControllerName','action'=>'submit'));?>" method="post" style="margin-left:20px"> 
<p class="bold setmgr">Your email here:</p> 
<div class="field"> 
    <input class="text" type="text name="custEmail"/> 
</div> 
<div class="field"> 
    <input class="button" value="Submit and be free!" type="submit"/> 
</div> 
</form> 

Le membre submitAction dans le contrôleur est correctement mise à feu. Aucun problème.

Mais tous les endroits où je pourrais rechercher les données POST semblent être vides!

 echo "obj custEmail = [" . $this->_request->getPost('custEmail') . "]\n"; 
     echo "GET custEmail = [" . $_GET['custEmail'] . "]\n"; 
     echo "POST custEmail = [" . $_POST['custEmail'] . "]\n"; 

     if ($this->_request->isPost()) { 
      $data = $this->_request->getPost(); 
      Zend_Debug::dump($data); 
     } 

Ils ne produisent tous rien.

Je serais très obligé pour une solution ou même une idée de ce qui ne va pas.

Merci d'avoir lu.

+0

Je ne sais pas si c'est intentionnel, mais la ligne 4 de votre premier exemple a le mot type = "texte sans le semilcolon arrière ... – VOIDHand

Répondre

1

Créez un formulaire en utilisant Zend_Form. Quand ZF a déjà un moyen de créer des formulaires, vous devriez l'utiliser. Votre méthode est comme un hack et n'est pas une façon recommandée de faire les choses.

Vérifiez ici sur la façon de créer un Zend_Form

http://framework.zend.com/manual/en/zend.form.html

+0

Aimerais beaucoup mais n'a pas encore été capable de comprendre comment obtenir Zend autoloader/routing pour trouver les fichiers de définition de formulaire En dehors de cela, je voudrais toujours trouver la réponse à ma question initiale - que ce soit ou non un hack - de POURQUOI les données $ _POST sont vides et/ou comment y arriver. – confused

8

Votre formulaire n'est pas dans les format.As correctes, il est PHP, vous pouvez utiliser le formulaire comme celui-ci ou vous pouvez même générer un Zend_Form (ce qui est profond façon de le faire). C'est toujours une bonne pratique de travailler avec ZEND_FORM.Si vous voulez toujours l'utiliser et le parcourir à votre guise, voici l'extrait que j'ai modifié pour vous.

Je modifier le code pour you.Your Voir devrait avoir cette forme en elle;

<form action="" method="post" style="margin-left:20px"> 
<p class="bold setmgr">Your email here:</p> 
<div class="field"> 
    <input class="text" type="text" name="custEmail"/> 
</div> 
<div class="field"> 
    <input class="button" value="Submit and be free!" type="submit" name="submit"/> 
</div> 
</form> 

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

Maintenant, écrivez le suivant sur votre ACTIOn, c'est à dire. submitAction;

public function submitAction() 
{ 
    if ($this->getRequest()->isPost()) 
    { 
    $custEmail = $this->getRequest()->getPost('custEmail'); 
    echo $custEmail; 
    $this->view->custEmail = $custEmail; 
    } 

} 

Maintenant, vérifiez si cela fonctionne pour vous ou non.

Questions connexes