私のアプリケーションでは、jQuery DataTablesプラグインを使用しています。多くのテーブルの行とフィルタには特殊文字、具体的にはアンパサンド(&)が含まれています。これらの列をフィルタリングしようとすると、すべてのレコードが消え、「一致するレコードが見つかりません」と表示されます。jQuery DataTablesプラグインを使用して特殊文字で結果をフィルタリングする方法はありますか?
私は(つまりはhtmlspecialchars)エンコーディングを試してみましたが、デコードしている(すなわちhtmlspecialchars_decode)は、ページ上に印刷が、どちらも動作しているようだされていない前に、文字列。
例:http://jsfiddle.net/gkdcZ/3/
すべてのアイデア、なぜこれが起こって、どのように私はそれを修正することができかもしれませんか?
HTML:
<select id="filter_col_1" name="filter_col_1">
<option value="">Select</option>
<option value="A&B">A&B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>
<tr>
<td>A&B</td>
<td>Jones, Brandon</td>
<td>01/02/2003</td>
</tr>
はJavaScript:
$("#filter_col_1").change(function() {
$('#results').dataTable().fnFilter(
'\\b' + $("#filter_col_1").val() + '\\b',
1,
true,
false
);
});
UPDATE#1: 問題は、あなたが列を制限する場合にのみ発生するように見えます。 DataTables APIを参照してください。パラメータが "null"に設定されているとうまく動作します。 http://jsfiddle.net/gkdcZ/4/
更新日2: 少し近い。 HTMLエンティティを置き換える関数に追加すると、特定の文字(アンパサンド)に対しては機能しますが、他の文字(感嘆符や疑問符など)では機能しません。その特別な文字で問題を起こすのDataTableとのバグが確かにあります
あなたは '&' とを交換する 'と' ことができますか?次のようにします:str_replace( "&"、 "and"、$ input); – azzy81
私はあなたの試みが何をするのか分からない。あなたのJavascriptコードを投稿できますか? – pomeh
上記のJavaScriptでちょうど追加されました。私はドロップダウンボックスの選択に基づいて検索結果をフィルタリングしようとしています。私のドロップダウンボックスには、問題の原因となっている特殊文字の項目がいくつかあります。 – Michael