CakePHP检测是否在模式框中查看视图

时间:2011-07-15 09:20:30

标签: php cakephp jquery-ui-dialog

我有几个视图可以访问模态框而不是实际页面。因此,我希望做到以下几点:

  • 当用户在模态中提交内容时,它将回发然后关闭模态,然后将用户返回到他们所在的页面(INSTEAD OF REFRESHING INSIDE THE MODAL)

注意:我将传递一个特殊的JS函数来关闭模态但是如何确保模态与正在显示的页面进行对话?我正在使用Jquery UI Dialog

  • 如果用户尝试直接在浏览器中访问该页面而不是模态,则会将其重定向到其他位置或显示为403

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:4)

考虑到prodigitalson的评论,你有没有检查过CakePHP的request handler documentation?我不确定,但我认为它可以帮助你做你想做的事。

答案 1 :(得分:1)

jquery和大多数其他js frmaeworks会将X-Requested-with标头集发送到xmlhttprequest,以便您可以检测到:

if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) ||  $_SERVER['HTTP_X_REQUESTED_WITH'] != 'xmlhttprequest'){
  // redirect
}

答案 2 :(得分:1)

如果我理解正确,您可能需要:http://book.cakephp.org/view/1371/isAjax

控制器中的

if ($this->requestHandler->isAjax()) { ... this is ajax request.. } else { ... non-ajax ...}