javascript - Phoenix - 使用数据表的站点范围搜索功能

标签 javascript html datatables elixir phoenix-framework

我正在开发一个 Phoenix Web 应用程序,并试图找出一种方法来实现位于导航栏中的全局搜索框,该搜索框将指向位于 /的表格并对其执行搜索用户 使用 DataTables 构建。正如我现在所拥有的,当我通过搜索栏提交搜索时,它会重定向到 /users 但不会将搜索应用于表格。

app.html.eex(布局):

<form id="custom-search-input" class="nav navbar-nav pull-right" action="/users">
  <div class="input-group">
    <input id="ee-search" type="text" name="search" class="form-control" placeholder="Employee Search" />
    <span class="input-group-btn">
      <button class="btn btn-info">
        <i class="fa fa-search"></i>
      </button>
    </span>
  </div>
</form>

app.js:

$(document).ready( function () {
  $('#employeeTable').DataTable();
} );

var table = $('#employeeTable').DataTable( {
  "lengthMenu": [ [15, 50, 75, 150, -1], [15, 50, 75, 150, "All"] ]
} );

我在 DataTables API 中找到了它,并将其放置在 app.js 中:

$('#ee-search').on( 'keyup', function () {
  table.search( this.value ).draw();
} );

我提前道歉...我的 JavaScript 技能几乎不存在。如何将搜索输入应用于数据表?我假设有一种方法可以链接表单提交/javascript代码/数据表?如果您需要更多信息或代码,请告诉我。谢谢!

最佳答案

可以通过三种方式将数据从一个页面传递到另一页面,而无需往返服务器:GET 数据、cookie 和本地存储中的 session 变量。其中,我首先使用 GET 数据。

所以,请阅读 this question ,(这是众多示例之一)解释了如何使用 GET 机制将数据从一个页面传递到另一页面。基本上,您必须将 method="GET" 添加到表单的属性中,然后从 \users 页面解析生成的查询字符串。

然后,要执行搜索,只需调用 search() 方法,将解析后的字符串作为参数传递,然后调用 draw() 方法,因此:

myTable.search( myTextString ).draw();

数据表将应用搜索词、过滤结果并重新绘制表格。

关于javascript - Phoenix - 使用数据表的站点范围搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38535040/

相关文章:

jquery - 显示每页下拉列表以及数据表上的导出按钮

javascript - Markdown 加粗不带回溯的正则表达式

javascript - 将输入框转换为组合框以实现 jQuery 自动完成

javascript - UglifyJS 不会破坏 props 和 state 属性

html - 在没有预标记的情况下进行以下设计

javascript - 使用 Javascript 编辑内容管理系统创建的 HTML 元素

javascript - Lightbox2 不适用于图片库。在 VS code v.1.35 Kali linux 上工作

javascript - jquery 数据表和 css 未在 mvc 4 中呈现

javascript - CSS 从左侧动画滑入

javascript - 如何在数据表中将过滤类型从 LIKE 更改为 EQUAL