このSO質問を使用して、チェックボックスを使用したフィルター検索を処理しています。
これはJSです
$('input[type="checkbox"]').on('change', function (e) {
var data = {},
fdata = [],
loc = $('<a>', { href: window.location })[0];
$('input[type="checkbox"]').each(function (i) {
if (this.checked) {
if (!data.hasOwnProperty(this.name)) {
data[this.name] = [];
}
data[this.name].push(this.value);
}
});
// get all keys.
var keys = Object.keys(data);
var fdata = "";
// iterate over them and create the fdata
keys.forEach(function(key,i){
if (i>0) fdata += '&'; // if its not the first key add &
fdata += key+"="+data[key].join(',');
});
$.ajax({
type: "get",
url: "/ajax/get",
data: {
"_token": "{{ csrf_token() }}",
"fdata": fdata
},
success: function (response) {
$('#d2d-results').html(response);
}
});
if (history.pushState) {
history.pushState(null, null, loc.pathname + '?' + fdata);
}
});
そして今、私はfdataの値をPHPに取得しようとしています。
PHPでは、次の変数の値を取得しますecho $_GET['fdata'];
。
discount=Y&brand=BR0006,BR0003
私が欲しいもの
$discount="Y";
$brand="BR0006,BR0003";
そのようにすることは可能ですか?
やりたいことを行うには、次の2つの手順を実行する必要があります。
注意すべきいくつかの事柄:
使用extract
は非常に安全ではありません(そしてやや醜いです)。ユーザーは(たとえば)isAdmin=1
URLに次のようなものを入れることができ、はコードに影響します。基本的に、変数はもう信頼できません。
ステップ2(extract
物事)をスキップ$result
して、たとえば直接使用しecho $result['discount']
ます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加