php - 将查询字符串附加到现有的ajax url cakephp 3
问题描述
假设我有 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 的方式来做到这一点?我意识到这已经适用于分页。有人知道如何使用自定义查询字符串进行这项工作吗?
提前致谢
解决方案
你在寻找这样的东西吗?
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
这将为您提供当前的查询字符串项目。现在你只需要操纵它并使用它。
可在https://css-tricks.com/snippets/javascript/get-url-variables/找到
推荐阅读
- python - 在 Plotly Dash 和 Power BI 之间,我应该学习哪一个来获得类似的结果?
- loops - 循环浏览文件夹并读取 *.p7c 文件
- iis - IIS 重写问题 - 如何重写没有路径的初始 URL 到带有路径的 URL
- python - 我对我的“GPU”是否在我的环境中工作感到困惑?
- javascript - 在聊天 API 中找到了一些 JSON 逻辑运算符,这是如何工作的
- python - 使用哪一个:super() 或 self.function(),函数在父类中定义
- amazon-quicksight - amazon quicksight 是否可以在 5 分钟或不到 1 小时内刷新数据集
- javascript - 在 Django 项目的 javascript 文件中包含 javascript 文件
- spring-kafka - 如果消息是 GenericRecord,如何在 KafkaListener 方法中提取消息头详细信息
- javascript - 需要从 Google Apps 脚本查询 Google Sheet 以获取特定数据