データベースから取得したデータを含むjqueryデータ型があります。デフォルトでは、フィルタリングはなく、そのユーザに必要なすべてのデータを持っています。入力フィールドには、jqueryデータ型自身の検索に加えてカスタム検索があります。チェックボックスをオンにすると、データが要素data-attribute
に基づいて除外されるチェックボックスアクションを実装したいと思います。データ属性に基づいてjqueryデータ型からデータをフィルタリングします
これはチェックボックスである:のDataTableの
<div class='checkbox' id='subplayers'>
<label><input type='checkbox' value=''>Show filtered content</label>
</div>"
最初の列は属性data-insub=x
x is 1 || x is 0
(<td data-insub='1'>
又は<td data-insub='0'>
)と<td>
要素です。スクリプトで
私は、チェックボックスの変更を検出:
$('#subplayers').change(function() {
if($(this).is(":checked")) {
//Checked
var playersInSub = document.querySelectorAll("[data-insub='1']");
}
else{
//Not checked
}
});
今私は(1
としてそれを持っているものを保つ)0
としてデータ属性data-insub
セットを持っているすべてのプレーヤーをフィルタリングしたいと思います。私は単純な検索は、データ属性ではなく表に書き込まれたデータに対して機能するので、ここでは十分ではないと思います。
これはテーブル行のデータを生成しているPHPです(私のコードの有益な部分の多くは、私が持っている問題とは関係がないと思われます)。
$pid = $player['pid'];
$fname = $player['fname'];
$lname = $player['lname'];
$club = $player['club'];
$sameTourney = false;
if (in_array($pid, $playerIds)){
$sameTourney = true;
}
$sameSub = false;
if (in_array($pid,$subPlayers)){
$sameSub = true;
}
echo "<tr id='col+'".$playernumber."_filter'>";
if ($sameSub){
echo "<td class='playernumber' data-insub='1'>".$playernumber."</td>";
}
else{
echo "<td class='playernumber' data-insub='0'>".$playernumber."</td>";
}
echo "<td class='firstnames'>".$fname."</td>";
echo "<td class='lastnames'>".$lname."</td>";
echo "<td class='clubnames'>".$club."</td>";
if ($sameTourney){
echo "<td><a href='#' class='modifyplayer' id='removeModify".$pid."' data-actiontype='remove' data-playerid='".$pid."'>Remove</a></td>";
}
else {
echo "<td><a href='#' class='modifyplayer' id='addModify".$pid."' data-actiontype='add' data-playerid='".$pid."'>Add</a></td>";
}
echo "</tr>";
$playernumber += 1;
これは、すべての表要素が表示され、表項目が別々の表ページにない場合に機能します(たとえば、表に25の要素があり、ページあたり10の要素が表示されている場合、 10,10および5要素)。要素は最初のページからのみ非表示になります。 – Banana
なぜサーバー側をフィルタリングしたり、jsonオブジェクトをクライアントに送り返して人生を楽にするのはなぜですか? –