假设我有 btn1 和 btn2 在通过 Ajax 单击它们时将一些数据加载到 div 中,如下所示:
$(document).on('click', '#btn1', function(e){
var url = "<?= $this->Url->build(['controller' => 'MyController', 'action' => 'my_action', '?' => ['param1' => 'abc']], ['escape' => false]); ?>";
$('#my_container').load(url);
});
$(document).on('click', '#btn2', function(e){
var url = "<?= $this->Url->build(['controller' => 'MyController', 'action' => 'my_action', '?' => ['param2' => 'def']], ['escape' => false]); ?>";
$('#my_container').load(url);
});
正如你在上面看到的,每个按钮调用相同的控制器操作,但传递具有不同值的不同查询字符串(param1 和 param2)。
我希望能够将查询字符串附加到当前 url,而不是仅仅加载附加到每个按钮含义的链接:
如果我点击 btn1,我加载的 url 将是:
http://example.com/mycontroller/my_action/?param1=abc
但是如果我再点击 btn2,我的 url 应该变成:
http://example.com/mycontroller/my_action/?param1=abc¶m2=def
代替:
http://example.com/mycontroller/my_action/?param2=def
所以我想将查询字符串附加到现有的 url。
请记住,这些是 Ajax 调用。所以当前加载的 url 在浏览器中是不可见的。
有没有 CakePHP 3 的方式来做到这一点?我意识到这已经适用于分页。有人知道如何使用自定义查询字符串进行这项工作吗?
提前致谢