【问题标题】:Zend Form Dynamic Ajax City LoadingZend Form 动态 Ajax 城市加载
【发布时间】:2011-01-19 17:32:44
【问题描述】:

我正在使用 zend 框架进行项目,我需要通过状态选择加载动态 ajax 城市。每个州都与数据库中的城市相关联。

我有一个表单 Create.php class Application_Form_Create extends Zend_Form {

public function init() {

$this->setMethod('POST');

...

$state = new Zend_Form_Element_Select('state');
    $state->setLabel('States:')
         ->addMultiOptions($DataBaseStatesArray);
    $this->addElement($state);

$city = new Zend_Form_Element_Select('city');
    $city->setLabel('Cities:')
         ->addMultiOptions($DataBaseCitiesArray);
    $this->addElement($city);

$submit = new Zend_Form_Element_Submit('submit');
    $this->addElement($submit);

}

表单被加载到控制器上查看

... function createAction(){ $this->view->form = new Application_Form_Create(); }

查看

<?=$this->form;?>

如何使用 zend 框架资源根据所选状态加载城市?

谢谢

【问题讨论】:

    标签: jquery ajax zend-framework zend-form


    【解决方案1】:

    您可以在控制器的 init 方法中使用它来将运行时动作的性质更改为 Ajax 专用动作,该动作将自动禁用布局呈现。

    控制器

    public function init()
    {
    $ajaxContext = $this->_helper->getHelper('AjaxContext');
    $ajaxContext->addActionContext('check', 'html');
    $ajaxContext->initContext();
    }
    

    动作

    public function checkAction()
    {
    // code to run upon ajax request
    // ...
    // ...
    
    $this->_view->result = $result; // pass the result to the view
    }
    

    你查看文件就这么简单

    <?php echo $this->result; ?>
    

    那么你只需要确保视图的内容是你想要的任何格式,HTML、XML、JSON

    更多信息见本书第 5 章Zend Framework in Action

    【讨论】:

    • 好吧,我正在这样做,但是 Zend Form 验证了 ajax 插入的数据,并说在大海捞针中找不到“城市”
    • 您在 ajax 操作中同时收到(州和城市)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    相关资源
    最近更新 更多