- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在为表格使用 JSGrid。 Jsgrid documentation关联。在表格上方,我制作了一个名为“过滤器”的按钮。我想根据Filter_form数据过滤Jsgrid表的数据。我一直在通过在 Filter_form(引导模式)内的“提交”按钮上调用 onclick 函数来实现这一点。 ajax 代码似乎无法正常工作。还有如何捕获从 PHP 后端文件返回的数据并在 Jsgrid 表中仅显示过滤后的数据。伙计们请帮我解决这个问题。非常感谢。
<!-- Filter Modal Start-->
<div class="modal fade" id="filterModal" tabindex="-1" role="dialog" aria-labelledby="Filter data dialog">
<div class="modal-dialog">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">×</span>
<span class="sr-only">Close</span>
</button>
<h1>
Filter Data
</h1>
</div>
<!-- Modal Body -->
<div class="modal-body">
<div class="container-fluid">
<form class="form-inline" role="form" id="filter_form">
<div class="col-md-4">
<div class="form-group">
<label for="column_name">Column Name</label>
<select class="form-control" id="column_name" name="column_name" aria-label="Column Name" style="width:100%;">
<option value="Standard Name">Standard Name</option>
<option value="Status">Status</option>
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="condition">Condition</label>
<select class="form-control" id="condition" name="condition" aria-label="condition" style="width:100%;">
<option value="contains">contains</option>
<option value="start with">start with</option>
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label for="keyword">Keyword</label>
<input type="text" class="form-control" id="keyword" name="keyword" placeholder="Enter keyword" aria-label="keyword" style="width:100%;">
</div>
</div>
<div class="col-md-12" style="padding-top: 2rem;">
<button type="submit" class="btn btn-primary submitBtn" onclick="submitFilterForm()">Submit</button>
</form>
</div>
</div>
</div>
<!-- Modal Footer -->
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!--Filter Modal End-->
在提交按钮上调用 AJAX 函数
function submitFilterForm(){
var form = $("#filter_form");
var column_name = $("#column_name").val();
var condition = $('#condition').val();
var keyword = $('#keyword').val();
if(keyword == '' ){
alert('Please enter keyword.');
$('#keyword').focus();
return false;
}else{
$.ajax({
type:'POST',
url:'submit_filterform.php',
data:form.serialize(),
beforeSend: function() {
$('.submitBtn').attr("disabled","disabled");
$('.modal-body').css('opacity', '.5');
},
success:function(data){
alert(data.message);
if(JSON.stringify(data) == 'filtered'){
$('#keyword').val('');
$('.submitBtn').removeAttr("disabled");
$('.modal-body').css('opacity', '');
//$("#jsGrid").val(data);
$("#jsGrid").jsGrid({
onDataLoaded: function(args) {
// data is loaded, so do whatever you want, here you have also access to loaded data with args.data
alert('Hi I have loaded again');
}
});
//$('.modal').hide();
//$("#jsGrid").jsGrid("loadData");
}else{
//$('.statusMsg').html('<span style="color:red;">Some problem occurred, please try again.</span>');
alert('Some error occurred while filtering data, please refresh page and try again.');
}
}
});
}
}
PHP 后端查询
switch($_SERVER["REQUEST_METHOD"]) {
case "POST":
$result = sqlsrv_query($con,"SELECT * FROM report_standard WHERE ".$_POST['column_name']." LIKE '%".$_POST['keyword']."%'");
//$params = array($_POST['column_name'],$_POST['keyword']);
if ($result == false) {
echo "no data";
exit();
}
else {
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
$data[] = $row;
}
$finalArr['data'] = $data;
$finalArr['itemsCount'] = count($data);
$finalArr['message'] = 'filtered';
echo json_encode($finalArr);
}
break;
}
最佳答案
我终于找到了解决方案。请在下面找到更改。
AJAX Function called on submit button
function submitFilterForm() {
var form = $("#filter_form");
var column_name = $("#column_name").val();
var condition = $('#condition').val();
var keyword = $('#keyword').val();
if (keyword == '') {
alert('Please enter keyword.');
$('#keyword').focus();
return false;
} else {
$("#filterModal").modal("hide");
//Simply load the jsGrid again on the same id
$("#jsGrid").jsGrid({
height: "400px",
width: "100%",
editing: true,
inserting: true,
filtering: false,
paging: true,
autoload: true,
pageSize: 15,
pageButtonCount: 5,
rowNum: 10,
controller: {
loadData: function(filter) {
return $.ajax({
type: "POST",
url: "../submit_filterform.php",
data: form.serialize(),
dataType: "json"
}).then(function(result) {
console.log(result);
return result.data;
});
},
fields: [
//Fields as required based on the data
]
}
});
}
}
关于php - 无法使用模态内的表单在 JSGrid 上过滤和显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50528769/
关于如何清除同名 jqGrid 中的数据有很多答案。 ,但我找不到任何方法来清除 jsGrid 中的数据.我只想删除所有行并将网格重置为默认值,没有行。 我确实看到了 Batch Delete met
在jsgrid中通过ajax提供更新后,该行返回空白 controller: { loadData: function(filter) { var data = $.Defer
我正在从事 lightswitch 项目,我正在使用 JsGrid。我遇到了一个问题,但找不到解决方案。 这是场景:我使用网格从数据库表中获取数据,当我更新其中一个单元格时,除非我再次单击该单元格,否
我想添加多个自定义控制按钮,以便可以向按钮添加自定义单击事件。我遇到的问题是仅显示删除按钮。我希望每行都显示编辑和删除按钮。我有以下代码: $( document ).ready(funct
我最近开始使用 JsGrid,我真的很喜欢它。它交互简单且文档齐全。 我虽然面临一个小问题: 每当我在 JsGrid 应用程序中插入新行时,都会询问我一个 ID。如果此 ID 恰好与已存在的 ID 相
我是 JS 新手,并且一直在我的所有网格中使用 JSGrid。我现在需要添加自定义字段。问题是我不确定是否可以添加 HTML 作为我的数据的一部分。我想做的是添加一个音频控件来播放每个特定行的 MP3
我试图在编辑时将格式值强制到“导入”列中。它应该是一个字符串,表示具有 2 个固定十进制数字的数字。示例:1152.30。这是代码。 HTML JS代码 const ACCOUNT_GRID_FIE
排序功能将不再适用于使用 itemTemplate 和 headerTemplate 的列。 你可以看到来自 here 的 fiddle . 正如您所看到的,在“客户端 ID”列中,排序效果非常好。但
我从网上这个简单的示例中获取了源代码:http://js-grid.com/demos/basic.html . 我通过添加 jsGrid 的完整 CDN 路径来对其进行调整。为了简洁起见,我删除了除
从我所查看的内容来看,我找不到确切的方法。 我尝试过 editTemplate、itemTemplate 并尝试存储 Promise从 $("#jsGrid" + i).jsGrid("updateI
我正在使用 jsGrid 来显示数据。我想用“Alertify”替换默认的删除确认消息。 我尝试替换deleteConfirm:“你确定吗?”具有下面的功能,但它显示一个空的警报框,当我单击“确定”或
下面是我的完整代码。没有错误,并且显示了 Directory is empty。 $(document).ready(function() { $("#table").jsG
我想将 jsgrid 编辑按钮的内置功能从内联编辑器更改为打开另一个页面进行编辑。我不太确定该怎么做。有什么想法可以实现更改默认编辑按钮以加载页面吗?这可能吗?到目前为止我已经: 代码: $
有没有办法在 onPageChanged 回调之后选择网格的第一行?我看到其他网格库有这个功能。 我这样做的目的是每次打开另一个页面时自动将滚动条移动到网格的顶部。 这是否可以单独通过 jsgrid
对于我的一个项目,我必须使用 jsgrid ( http://js-grid.com )。 为了测试如何使用 jsgrid,我想做“入门”示例 ( http://js-grid.com/getting
我正在 Django 中开发一个 Web 项目并使用 jsGrid。我遇到了问题,但找不到解决方案。 我有一个嵌套的 JSON 数据,它是通过组合多个数据库表记录创建的。这是我的 JSON: {
我希望输入筛选字段按预期创建并显示在标题行单元格下方。 在我的 MVC 解决方案中,我通过 AJAX/JSON/GET 填充了 JSGrid。我能够排序并进入 loadData javascript
为什么当我单击下一个选项卡时 jsgrid 呈现错误?我尝试销毁 e 并提高 jsgrid 但没有解决。 $('a[href="#prestador"]').on('show.bs.tab',fun
我正在使用jsGrid并想知道是否可以自定义 editButton 的 onclick 事件。基本上,做一些类似显示模式而不是内联编辑的事情。我知道我们可以像这样获得控制列的 HTML 输出: {
我使用 Ajax 将数据加载到 jsGrid 中。 我有以下代码: $("#jsGrid").jsGrid({ width: "100%", height: "100%", a
我是一名优秀的程序员,十分优秀!