如何使用 Jquery View Helper 和 JSON (ZEND) 填充选择
我知道 zend 框架有一些简单的方法可以做到这一点, 但我没有找到一个好的答案或教程来根据 zend 做事。
一些答案展示了如何在没有 JSON 的情况下进行操作,其他答案则展示了如何在没有 Jquery View Helper 的情况下进行操作, 以及其他不使用 zend 框架的人。
事情太简单了 我们有 2 个选择:组和子组 当我更改组时,子组将被填充。
这是操作:
public function getSubgroupAction(){
$model = new MySubgroupModel();
$id = $this->getRequest()->getParam('id');
$where = "id = $id";
$data = $model->fetchAll($where)->toArray();
$json = Zend_Json::encode($data);
return $json;
}
这是
public function init(){
$model = new MyGroupModel();
$options = $model->fetchAll();
// $options receive a query with id and name
$group = new Zend_Form_Element_Select('group');
$group->setLabel('Chose Group')
->addMultiOptions($options)
->setRequired();
$subgroup = new Zend_Form_Element_Select('subgroup');
$subgroup->setLabel('Chose Subgroup')
->setRequired();
}
我想知道在哪里放置对“getSubgroupAction”的请求的表单,或者我必须使用 jquery 视图助手来从操作中获取 json 响应。
注意:这不是一个有效的示例。
我期待感谢您的关注和帮助。 tkzalot。
I know that zend framework have some easy ways to do this,
but i didn't found a good answer or tutorial to do things according to zend.
Some answers show how to do without JSON, others without Jquery View Helper,
and others without using zend framework.
The thing is too simple
We have 2 Selects: group and subgroup
When I change group, the subgroup is populated.
This is the action:
public function getSubgroupAction(){
$model = new MySubgroupModel();
$id = $this->getRequest()->getParam('id');
$where = "id = $id";
$data = $model->fetchAll($where)->toArray();
$json = Zend_Json::encode($data);
return $json;
}
And this is the form
public function init(){
$model = new MyGroupModel();
$options = $model->fetchAll();
// $options receive a query with id and name
$group = new Zend_Form_Element_Select('group');
$group->setLabel('Chose Group')
->addMultiOptions($options)
->setRequired();
$subgroup = new Zend_Form_Element_Select('subgroup');
$subgroup->setLabel('Chose Subgroup')
->setRequired();
}
I want to know where to put on form the request to 'getSubgroupAction' or what i have to do using jquery view helper to get the json response from the action.
Note: This is not a working example.
I antecipate my thanks for the attention and the help.
tkzalot.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先在 init 的 Controller 中将上下文更改为 json。
如果您只想始终渲染 json,则禁用布局。
在您点击数据库并获取所需数据后,在 getSubgroup 操作中对 json 和 echo 进行编码。
如果您滚动到此操作,json 应该会显示在您的浏览器中。
使用 ajax,您可以随时获取 json 响应以显示在您想要的任何位置。还有其他方法可以做到这一点,而不是使用控制器发送 json 响应,但这可能是让链接正常工作的最简单方法。
First in your Controller in init change your context to json.
If your only going to always render json then disable the layout.
In your getSubgroup action after you hit you DB and get the data you want encode the json and echo.
If you scroll to this action json should be displayed in your browser.
With ajax you can always go and get the json response to display where ever you want. There are other ways of doing this instead of using a controller to send the json response but this is probably the easiest way to get your link working.