我正在使用PHP Zend Framework。
如何通过以下方式获取控制器发送的值:
$ infoForm =阵列(
//我从数据库中获取这些值
'idCity'=> $ idCity,
'idRestaurant'=> $ idRestaurant
);
$形式 - >填充($ infoForm);
我在Dojo_Form中获取信息
$ city = new Zend_Dojo_Form_Element_FilteringSelect('idCity');
但是通过idCity,我要去DB并更新FilteringSelect('idRestaurant')以查看该城市的餐馆
如何查看$ form-> populate($ infoForm)发送的变量的值;在形式?
我在表单中尝试了$ this-> getvalue('idCity'),但这似乎仅在返回控制器时获取值。我想检查值idCity然后生成FilteringSelect('idRestaurant')。
::更好地解释
我有:我有: 控制器(扩展Zend_Controller_Action)
模型(Zend_Db_Table_Abstract) - >访问数据库的功能
表单(扩展Zend_Dojo_Form) - >创建from ::我想在这里看到值!
查看(我可以查看表单)
我从控制器中的数据库中获取值,然后我将它们发送到Form with $ form-> populate($ infoForm); 我希望看到来自控制器的值来相应地生成表单
答案 0 :(得分:0)
您可以像这样获得表单'的值:
$valueArray = $form->getValues();
然后$ valueArray会像:
array(
'elementName1' => 'value1',
'elementName2' => 'value2',
...
);
...但我可能误解了这个问题,如果是的话,抱歉!
答案 1 :(得分:-1)
您可以设置$ this-> view-> varName来反馈该值,以便表单可以看到它。
例如,在控制器(动作)中:
$this->view->myVar = $this->getRequest()->getParam['myVar'];
然后在表格中请求:
<?= $this->myVar ?>
答案 2 :(得分:-1)
我不熟悉Zend_Dojo甚至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/
答案 3 :(得分:-1)
zend表单元素应该附加一个id,然后将它们添加到表单中,您可以使用它来引用它们 在你的情况下,它应该是:
$form->idCity->getvalue();