0

我是 Zend Framework 的新手,我正在尝试使用 Zend Form 制作表单。在那种形式中,我想要国家、州和城市的级联下拉菜单。我已经从数据库中填写了国家/地区的下拉列表,但我不知道如何通过获取国家/地区 ID 来填写州的下拉列表。

提前致谢。

4

2 回答 2

0

你必须像这样设置一个关联数组:

$tCountries = array(
    1 => "France",
    2 => "USA"
);

$element = new Zend_Form_Element_Select();
$element->addMultiOptions($tCountries);

您可以在这里找到更多信息:http: //framework.zend.com/manual/en/zend.form.standardElements.html#zend.form.standardElements.select

于 2012-07-29T13:00:33.173 回答
-2

要动态加载国家/地区,您应该按照您的方式使用它:

我以前用标准的 php 和 jquery 做过这个

和这里无关Zend_Form。您应该有一项JSON服务(例如),它将接受CountryID并返回所有可用状态。

为此,您应该在您的部分中连接jQuery库。<head>

$this->view->headScript()->appendFile('/js/jquery-1.7.3.js'); // In your Controller

将您jQuery的脚本添加到您的脚本中template,它将处理这样的所有事件:

$_form->inlineScript()->appendScript(' // my raw JS here');

或者

$_form->inlineScript()->appendFile('js/dynamicCountry.js'); // if you want to keep it in separate file

在这里,Zend_From除了分配正确的元素ID'sclassesnames.

你可以为你service做某事。相似的。假设网址http://localhost/mysite/service/states/country/AT

/**
 * In your Service controller disable rendering for your layout and views
 */
public function preDispatch() {
        $this->_helper->layout()->disableLayout(); // if you have `layout` enabled
        $this->_helper->viewRenderer->setNoRender(true);
    }

和...欢迎

public function statesAction() {

    $request = $this->getRequest();

    /**
     * Country code transmitted through the parameter
     * @var string
     */
    $country = $request->getParam('country');

        // you are free to do whatever you want and return JSON (for e.g.)
}
于 2012-07-29T13:23:00.020 回答