$.ajax带参数跳转,分享 首次访问控制器时候设置ajax的参数 透传 assingconfig id 带参数跳转 index 参数 自定搜索...

问题

我们在开发中会经常遇到,在访问index方法的时候需要传递一个参数,来显示我们规定的拥有统一标志的数据JWNUfN6AViZUK4W5MBqR/w==

思路通过URL传递一个参数给index!AX8J7wve9PiUquEx8hVYMw==由于访问的index方法常由ajax发起 所以参数不会生效!

在ajax发起的时候就追加一个搜索条件 例如 $group_id=1

正确姿势在控制器中 使用assignconfig()方法给js透传参数public function index($ids=NULL) //需要从URL接收参数

{

//当前是否为关联查询

$this->relationSearch = false;

//设置过滤方法

$this->request->filter(['strip_tags']);

if ($this->request->isAjax())

{

list($where, $sort, $order, $offset, $limit) = $this->buildparams();

$total = $this->model

->where($where)

->order($sort, $order)

->count();

$list = $this->model

->where($where)

->order($sort, $order)

->limit($offset, $limit)

->select();

foreach ($list as $row) {

$row->visible(['taxState']);

}

$list = collection($list)->toArray();

$result = array("total" => $total, "rows" => $list);

return json($result);

}

$this->assignconfig("group_id",$ids); //在这里透传给js

return $this->view->fetch();

}对应js中接收数据并拼接到搜索的条件中去// 初始化表格参数配置

Table.api.init({

extend: {

index_url: 'test/index',

add_url: 'test/add',

edit_url: 'test/edit',

del_url: 'test/del',

multi_url: 'test/multi',

table: 'test',

},

queryParams: function (params) { //自定义搜索条件

var filter = params.filter ? JSON.parse(params.filter) : {}; //判断当前是否还有其他高级搜索栏的条件

var op = params.op ? JSON.parse(params.op) : {}; //并将搜索过滤器 转为对象方便我们追加条件

filter.group_id= Config.group_id; //将透传的参数 Config.group_id,追加到搜索条件中

op.group_id= "="; //group_id的操作方法的为 找到相等的

params.filter = JSON.stringify(filter); //将搜索过滤器和操作方法 都转为JSON字符串

params.op = JSON.stringify(op);

> //如果希望忽略搜索栏搜索条件,可使用

//params.filter = JSON.stringify({url: 'login'});

//params.op = JSON.stringify({url: 'like'});

return params;

},

});

更给力的办法不修改控制器只需要修改js中发起ajax时候的参数即可queryParams: function (params) { //自定义搜索条件

var filter = params.filter ? JSON.parse(params.filter) : {}; //判断当前是否还有其他高级搜索栏的条件

var op = params.op ? JSON.parse(params.op) : {}; //并将搜索过滤器 转为对象方便我们追加条件

filter.group_id= Fast.api.query("group_id"); //将需要的参数group_id 加入到搜索条件中去 要求url传递的参数必须为group_id=XX;可以用 Fast.api.query("group_id")获取到!

op.group_id= "="; //group_id的操作方法的为 找到相等的

params.filter = JSON.stringify(filter); //将搜索过滤器和操作方法 都转为JSON字符串

params.op = JSON.stringify(op);

> //如果希望忽略搜索栏搜索条件,可使用

//params.filter = JSON.stringify({url: 'login'});

//params.op = JSON.stringify({url: 'like'});

return params;

},

思考如果有很多参数要传递时候,应该使用数组。

如果不带参数访问的情况应该有反馈。

PS.本人美工,大神勿喷!

方法为社区搜索整理来的,代码多来自Karson大神的demo。

有误或不详尽的地方,欢迎回帖指正、补充。

若本帖对你有所帮助,请点赞!请收藏!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值