2009-11-19 6 views
-1

J'utilise PHP Zend Framework.Obtenir les valeurs du contrôleur pour former

Comment puis-je obtenir les valeurs du contrôleur envoyé par:

$ InfoForm = array (
// Je reçois ces valeurs d'une DB 'idCity' => $ idCity, 'idRestaurant' = > $ idRestaurant

);

$ form-> remplir ($ infoForm);

i obtenir les informations dans le Dojo_Form

$ city = new Zend_Dojo_Form_Element_FilteringSelect ('idCity');

mais idCity je vais voir les restaurants dans cette ville

Comment puis-je voir la valeur des variables envoyées par $ form-> DB et remplir la mise à jour du FilteringSelect (« idRestaurant ») ($ infoForm); sous la forme?

J'ai essayé $ this-> getvalue ('idCity') dans le formulaire, mais cela semble avoir la valeur seulement quand il revient au contrôleur. Je veux vérifier la valeur idCity puis générer le FilteringSelect ('idRestaurant').

:: Expliquer mieux

J'ai: J'ai: Controller (extends Zend_Controller_Action)

Modèle (Zend_Db_Table_Abstract) -> Fonctions de base de données Access

Form (étend Zend_Dojo_Form) -> créer le de :: Je veux voir les valeurs ici !!

View (où je peux voir le formulaire)

je reçois les valeurs de la base de données dans le contrôleur, puis je les envoie au formulaire avec $ form-> remplir (InfoForm $); Je voudrais voir les valeurs qui proviennent du contrôleur pour générer le formulaire en conséquence

+0

Malheureusement lecture ofter votre réponse pour la deuxième fois, je comprends encore votre question. Essayez de réécrire votre question ... –

+0

Oui, je ne suis pas tout à fait clair sur ce que vous voulez non plus. Désolé, mais j'ai essayé de mon mieux pour y répondre :-) – helloworlder

Répondre

-1

Vous pouvez définir $ this-> view-> varName pour renvoyer la valeur afin que le formulaire puisse le voir.

Par exemple, dans le contrôleur (action):

$this->view->myVar = $this->getRequest()->getParam['myVar']; 

ensuite sous la forme juste demander:

<?= $this->myVar ?> 
+0

C'est quand j'essaye de passer les variables du contrôleur à la vue! Je vais essayer d'expliquer mieux. J'ai: J'ai: Controller (extends Zend_Controller_Action) Modèle (Zend_Db_Table_Abstract) -> Fonctions pour accéder à la base de données Form (étend Zend_Dojo_Form) -> créer de :: Je veux voir les valeurs ici !! Affichage (où je peux voir le formulaire) Je reçois les valeurs de la base de données dans le contrôleur, puis je les envoie à Form avec $ form-> populate ($ infoForm); Je voudrais voir les valeurs qui proviennent du contrôleur pour générer le formulaire en conséquence – Carlos

+0

Je n'ai pas travaillé avec Zend_Dojo_Form mais je suppose que c'est soit via la requête (puisque cela devrait toujours être autour), soit en passant un objet personnalisé avec les valeurs. –

0

Vous pouvez obtenir les valeurs d'une forme comme ceci:

$valueArray = $form->getValues(); 

Alors $ valueArray sera comme:

array(
    'elementName1' => 'value1', 
    'elementName2' => 'value2', 
    ... 
); 

... Mais j'ai peut-être mal compris la question, si oui, désolé!

-1

Je ne suis pas familier avec Zend_Dojo ou même Dojo, mais lui-même, mais après quelques recherches, je pense que vous devriez avoir une structure similaire à celle dans votre contrôleur:

public function myAjaxAction() 
{ 
    if ($this->getRequest()->isXmlHttpRequest()) // if this is an ajax request 
    { 
     $this->_helper->viewRenderer->setNoRender(); //ajax call, so do //not render 
     $jsonData = *your data in json format that will be passed back to the form* 
     $this->getResponse()->appendBody($jsonData); // _response is the Response object            //that you are appending data to 
    } 
} 

Le code ci-dessus est une procédure simplifiée version basée sur le lien ci-dessous. Pour plus d'informations, consultez ce site. Sachez que la version utilisée est 1.6 mais cela peut vous donner une meilleure idée. SOURCE: http://blog.midstride.com/2008/08/26/integrating-ajaxdojo-into-the-zend-mvc-in-8-steps/

-1

éléments de formulaire zend doivent avoir une carte d'identité atached à alors lorsque vous les ajoutez à la forme et vous pouvez l'utiliser pour les référencer dans votre cas, il devrait être:

$form->idCity->getvalue(); 
Questions connexes