2009-11-19 88 views
-1

我正在使用PHP Zend Framework。从控制器获取值以形成

我怎样才能从所述控制器通过发送的值:

$ infoForm =阵列(
//我得到来自DB 'idCity'=> $ idCity, 'idRestaurant'=这些值> $ idRestaurant

);

$ form-> populate($ infoForm);

我得到的Dojo_Form

$城市=新Zend_Dojo_Form_Element_FilteringSelect( 'idCity')的信息;

但idCity我要去数据库,并更新FilteringSelect来(“idRestaurant”)看到餐馆在城市

我怎样才能看到$形式 - 发送的变量的值>填充($ infoForm);在形式?

我试过$ this-> getvalue('idCity')的形式,但是这似乎只有当它返回到控制器时才会得到该值。我想检查值idCity,然后生成FilteringSelect('idRestaurant')。

::解释更好

我已经得到了:我有: 控制器(延长化Zend_Controller_Action)

模型(Zend_Db_Table_Abstract) - >函数来访问数据库

表(延伸Zend_Dojo_Form ) - >创建自::我想在这里看到值!

视图(如果我可以查看的形式)

我得到的控制器从数据库中的值,然后我给他们以$形式 - 表单>填充($ infoForm); 我希望看到来自控制器的值生成相应的表格

+0

不幸的是ofter阅读你第二次回答我仍然理解你的问题。尝试重写你的问题... – 2009-11-19 18:25:20

+0

是的,我还没有完全清楚你在做什么之后。对不起,但我尽我所能来回答:-) – helloworlder 2010-02-02 15:52:29

回答

-1

您可以设置$ this-> view-> varName来反馈该值,以便表单可以看到它。

例如,在控制器(动作):

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

然后在表格只要求:

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

那就是当我试图将控制器的变量传递给视图! 我会尽力解释更好。 我有: 我有: 控制器(延伸化Zend_Controller_Action) 模型(Zend_Db_Table_Abstract) - >函数来访问数据库 表(扩展Zend_Dojo_Form) - >创建从::我想看看这里的价值!我从控制器中的数据库中获取值,然后通过$ form-> populate($ infoForm)将它们发送到Form中。 我希望看到来自控制器的值生成相应的表格 – Carlos 2009-11-20 10:53:38

+0

我没有与Zend_Dojo_Form一起工作,但我认为它是通过请求(因为那应该仍然存在),或者传递一个自定义对象价值。 – 2009-11-20 19:13:44

0

你可以得到这样的形式值:

$valueArray = $form->getValues(); 

然后$ valueArray将是这样的:

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

......但是我可能误解了这个问题,如果是的话,对不起!

-1

我不熟悉Zend_Dojo的甚至是道场,但本身,而是经过一番研究,我想你应该有一个类似的结构在控制器

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 
    } 
} 

上面的代码是一个简化版本基于下面的链接。有关更多信息,请参阅该网站。请注意,使用的版本是1.6,但它可以给你一个更好的主意。 来源:http://blog.midstride.com/2008/08/26/integrating-ajaxdojo-into-the-zend-mvc-in-8-steps/

-1

Zend的表单元素应该有atached到那么一个id,当你将它们添加到表格,你可以用它来引用它们 在你的情况应该是:

$form->idCity->getvalue();