0

我想我有一个一般的路由问题。

看看我得到了什么。我有一个带有分页器的页面。在我进入页面时,我有一个类似“host/OnlineBanking/session_details/session_id:xxxxxx”的网址。

如果我使用分页器,我会得到类似“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 呈现了完整的布局,没有我想要的那些数据。在我从 JS 调用的操作中,我将 autoRender 值设置为 false,因此不会出现问题。
我使用 Firebug 来弄清楚发生了什么,问题是 JS 只是附加了动作来调用前一个动作。所以 URL 看起来像“OnlineBanking/session_details/get_backend_requests”。所以我可以通过在 ajax 中使用这个“url:”../../get_backend_requests”来解决这个问题,但是没有 /page:2 的 URL 不再起作用。因为他尝试使用和操作作为控制器。

谁能给我一个提示来解决这个问题。

非常感谢!

4

1 回答 1

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);       
            }             
        }); 
于 2013-07-10T03:54:59.653 回答