-1

我正在使用 PHP Zend 框架。

如何从发送的控制器获取值:

$infoForm=array(
// 我从数据库中得到这些值 'idCity' => $idCity , 'idRestaurant'=>$idRestaurant

);

$form->populate($infoForm);

我在 Dojo_Form 中获得信息

$city = new Zend_Dojo_Form_Element_FilteringSelect('idCity');

但是通过 idCity 我要去数据库并更新 FilteringSelect('idRestaurant') 以查看该城市的餐厅

如何查看 $form->populate($infoForm); 发送的变量的值 在形式?

我已经在表单中尝试过 $this->getvalue('idCity') ,但这似乎只有在它返回到控制器时才获得值。我想检查 idCity 的值,然后生成 FilteringSelect('idRestaurant')。

::更好地解释

我有:我有:控制器(扩展 Zend_Controller_Action)

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

表单(扩展 Zend_Dojo_Form)-> 创建 from :: 我想在这里查看值!!

查看(我可以在其中查看表单)

我从控制器中的数据库中获取值,然后使用 $form->populate($infoForm); 将它们发送到 Form 我希望看到来自控制器的值以相应地生成表单

4

4 回答 4

0

您可以像这样获取表单的值:

$valueArray = $form->getValues();

然后 $valueArray 将像:

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

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

于 2010-01-09T00:04:14.573 回答
-1

当您将 zend 表单元素添加到表单时,应该附加一个 id,您可以使用它在您的情况下引用它们,它应该是:

$form->idCity->getvalue();
于 2010-02-02T15:08:44.277 回答
-1

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

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

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

然后在表格中要求:

<?= $this->myVar ?>
于 2009-11-19T21:39:59.993 回答
-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/

于 2010-02-02T15:00:26.213 回答