bootstrap-table使用自定义ajax时如何从页面传递自定义参数到后端
解决方案
你可以通过以下两种常用方式实现参数传递,都可以正常把view.php中的switch值传到后端process.php:
方法1:通过自带的queryParams配置传递(推荐)
你已经在表格上配置了data-query-params属性,这个配置是bootstrap-table专门用来扩展请求参数的,使用起来最规范:
- 首先在view.php的脚本中定义queryParams函数,追加你的自定义参数:
// view.php 页面的脚本中定义,值42可以根据需求用PHP动态输出 function queryParams(params) { // params默认包含分页、搜索等表格自带参数,直接追加自定义参数即可 params.switch = 42; return params; }
- 调整你的ajaxRequest函数,直接传入合并好的参数:
function ajaxRequest(params) { $.ajax({ type: "post", url: "process.php", dataType: 'json', // 直接传入params.data,已经包含所有自带参数和你追加的switch参数 data: params.data, success: function(items) { params.success({ rows: items }, null); }, error: function(er) { console.log(params.error(er)) console.log("error", er); } }) }
方法2:通过表格自定义属性传递
如果你的参数是和表格元素绑定的,可以用自定义data属性实现:
- 给table标签新增自定义属性存参数值,动态值可以用PHP直接输出:
<table id="table" data-toggle="table" data-height="460" data-ajax="ajaxRequest" data-query-params="queryParams" data-search="true" data-side-pagination="server" data-pagination="true" <!-- 新增自定义属性存switch值 --> data-switch="42" > </table>
- 在ajaxRequest中读取属性值携带到请求里:
function ajaxRequest(params) { // 读取表格上的自定义属性值 const switchVal = $('#table').data('switch'); $.ajax({ type: "post", url: "process.php", dataType: 'json', // 合并原有参数和自定义参数,低版本jQuery可改用$.extend({}, params.data, {switch: switchVal}) data: { ...params.data, switch: switchVal }, success: function(items) { params.success({ rows: items }, null); }, error: function(er) { console.log(params.error(er)) console.log("error", er); } }) }
后端process.php中直接通过$_POST['switch']即可获取到值为42的参数,执行对应逻辑即可。
内容的提问来源于stack exchange,提问作者fawzan
相关产品推荐
相关产品推荐

