比如,一个Controller 的Action中,我通过 $model->getErrors() 获取到了表单验证的出错结果,是一个数组,想要显示给用户。
怎样做才能使这个结果的输出即适合通过Ajax效果显示给用户,又可以在用户关闭了浏览器的JS后通过普通HTML或者 flash message 显示给用户?
Yii中有没有比较巧妙的解决方案?
谢谢~
比如,一个Controller 的Action中,我通过 $model->getErrors() 获取到了表单验证的出错结果,是一个数组,想要显示给用户。
怎样做才能使这个结果的输出即适合通过Ajax效果显示给用户,又可以在用户关闭了浏览器的JS后通过普通HTML或者 flash message 显示给用户?
Yii中有没有比较巧妙的解决方案?
谢谢~
谁给个提示啊?
CGridView不就是这样的原理?
有个开关,2套原则。。。。差不多是这样吧。
嗯,这个到是,但是,目标仅仅是输出一句消息,也不至于动用CGridView啊。
自己以前写的程序是通过ajax发出的请求会多加一个参数,php程序中判断这个参数,如果是ajax请求,就返回 json 串,否则就渲染普通的HTML视图。
Yii中有没有已经存在的比较巧妙的实现方式?继续求解…
这个问题也许可以解释为这样:
这个结果显示页在禁用Javascript的情况下,页码控制标签均为普通链接,即像以前的老式分页程序一样,每次翻页都由服务器根据请求参数返回新的页面。
同时为启用Javascript的浏览器应用Ajax模式,具体的方法:
动态的修改页码标签的点击事件,取消按钮点击时触发的默认方法——链接跳转,修改为点击后创建xmlHttpRequest并与特定的PHP页面进行Ajax通信。必要的话,可以把Javascript代码封装,然后就可以让用户选择是否开启Ajax模式了。
简单来说:
第一步(后台程序):先实现普通的分页即可;
第二步(前端脚本):添加Javascript代码,修改分页按钮的默认行为(由“链接跳转”转换为“Ajax通讯”)。
总结的比较简略,权当作是抛砖引玉吧。
看来,Yii是没有内置相应的feature了,自己实现吧~
谢谢各位~