Ich arbeite an einer Phoenix Web App und versuche herauszufinden, wie man ein globales Suchfeld in der Navigationsleiste implementiert, die auf eine Suche zeigt auf einer Tabelle unter /users
, die mit DataTables erstellt wird. Wie ich es jetzt habe, wenn ich eine Suche über die Suchleiste einreiche, wird es auf /users
umgeleitet, aber wendet die Suche nicht auf die Tabelle an.Phoenix - Site-weite Suchfunktion mit DataTables
app.html.eex (Layout):
<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"] ]
});
Ich fand das in der Datentabellen, die API I in app.js gesetzt haben:
$('#ee-search').on('keyup', function() {
table.search(this.value).draw();
});
Ich entschuldige mich im Voraus ... meine Javascript-Fähigkeiten sind praktisch nicht existent. Wie bekomme ich die Sucheingabe für die DataTable? Ich nehme an, es gibt eine Möglichkeit, die Formularvorlage/JavaScript-Code/DataTable zu verknüpfen? Wenn Sie weitere Informationen oder Code benötigen, lassen Sie es mich bitte wissen. Vielen Dank!
Sie sollten in der Lage sein, Ihre 'table' -Variable auf die Art und Weise zu referenzieren, wie Sie es versuchen, wenn Sie es definieren, wo Ihr' keyup'-Handler es sehen kann. Sie können einen Haltepunkt in Ihre Tabelle einfügen und die Tabelle auswerten, um festzustellen, ob sie nicht definiert ist. Das Erlernen von Javascript ist nach meiner Erfahrung zum Teil eine Frage der Syntax-Nachschau und zum Teil eine Frage des Herumlaufens in den DOM-Objekten, um zu sehen, was wirklich da ist. – BobRodes
Vielleicht habe ich deine Frage letzten Post nicht klar verstanden. Befindet sich das Suchfeld, das der Benutzer auf einer anderen Seite eingibt, in der Tabelle, in der die gefilterten Ergebnisse angezeigt werden? – BobRodes
@BobRodes Ja, das Suchfeld befindet sich auf einer statischen Navigationsleiste, auf die von überall zugegriffen werden kann. Die '/ user'-Seite ist im Grunde ein Mitarbeiterverzeichnis und ich versuche es von überall auf der Website zugänglich zu machen. – jsonkenl