在Paginator-Page上使用JS进行路由

时间:2013-07-09 13:06:00

标签: jquery cakephp routing

我认为我有一般的路由问题。

看看我得到了什么。我有一个带有Paginator的页面。当我进入页面时,我有一个像“host / OnlineBanking / session_details / session_id:xxxxxx”的网址。

如果我使用paginator,我会得到类似“host / OnlineBanking / session_details / session_id:xxxxxx / page:2”

仍然很容易理解。

但问题是我在这里使用的JS。我有一个按钮,后面有一个点击事件。

            $.ajax({
                type: 'POST',                               
                url: "../get_backend_requests",                 
                data: "request_id="+request_id,                 
                dataType: "html",
                success :function(html){                        
                    element.append(html);       
                }             
            }); 

所以问题是,如果我像我那样定义URL,那么我首先使用我发布的第一个URL工作。但是带有page-parameter的第二个URL会渲染完整的Layout而没有我想要的那些数据。在我从JS调用的动作中,我将autoRender值设置为false,因此无法解决问题 我使用Firebug来弄清楚发生了什么,问题是JS只是附加动作来调用前一个。因此URL看起来像“OnlineBanking / session_details / get_backend_requests”。 所以我可以通过在ajax中使用这个“url:”../../get_backend_requests“解决问题,但是没有/ page:2的URL不再工作了。因为他试图使用和操作作为一个控制器。

任何人都可以给我一个提示来解决这个问题。

非常感谢!

1 个答案:

答案 0 :(得分:0)

最好在bootstrap.php中声明一个常量

define('HTTP_HOST', "http://" . $_SERVER['HTTP_HOST'].'/');
define('SITE_URL', HTTP_HOST.'your_project_dir_name_if_any/');

并使用如下:

$.ajax({
            type: 'POST',                               
            url: "<?php echo SITE_URL.'controller_name/get_backend_requests';?>",                 
            data: "request_id="+request_id,                 
            dataType: "html",
            success :function(html){                        
                element.append(html);       
            }             
        });