私は現在、クライアントのためにこのサイトに取り組んでいますが、SQL クエリからの結果をフィルタリングするために jQuery スライダーから URL に現在の値を渡すことができないことがわかったとき、今日はレンガの壁にぶつかりました。
サイトのインターフェースから判断すると、私が達成したいことはかなり明確です。ユーザーは購入したい製品のタイプを選択できるはずです。これにより、現在ページが更新され、ボタンが押されたときに値が URL に渡されます。押した。
<form name="pumpType" action="<?php echo $_SERVER['PHP_SELF']; ?>?s=<?php echo $pType ?>&p=<?php echo $pVal ?>&g=<?php echo $gVal ?>" method="get" align="center">
<div class="btn-group" data-toggle="buttons-radio">
<button type="submit" class="<?php if( $pType == 'intermittent' ){ echo 'active '; } ?>btn btn-primary waitingUiBut" id="but1" name="s" value="intermittent">INTERMITTENT</button>
<button type="submit" class="<?php if( $pType == 'continuous' ){ echo 'active '; } ?>btn btn-primary waitingUiBut" id="but4" name="s" value="continuous">CONTINUOUS</button>
</div>
</form>
私のクライアントは、カテゴリがフィルター処理された後、ユーザーがクエリ結果をさらに絞り込むことができるようにしたいと考えています。これを実現するためにスライダーを使用することにしました。スライダーの値が変更されたら、SQL クエリを実行して、常に結果セットを調整したいと思います (これを行うには AJAX を使用する必要があると思いますか? 間違っている場合は修正してください)。私が抱えている問題は、?s= 変数のみが URL に送信され、?p 変数と ?g 変数の両方が認識されないことです。
SQL クエリ -
$pType = $_GET['s'];
$pVal = $_GET['p'];
$gVal = $_GET['g'];
$sql = "SELECT * FROM pumps
WHERE pump_type='$pType'
AND flow_psi <= '$pVal'
AND flow_gpm <= '$gVal'
AND high_psi <= '$pVal'
AND high_gpm <= '$gVal'";
jQuery Ui スライダー マークアップ -
<div align="center" class="productSlider">
<form name="pumpSlider" action="?s=<?php echo $pType ?>&p=<?php echo $pVal ?>&g=<?php echo $gVal ?>" method="get">
<p class="inlineLabel">PSI</p><div class="filterSlider" id="psiSlider" name="p" value="1000"></div>
<p class="inlineLabel">GPM</p><div class="filterSlider" id="gpmSlider" name="g" value="1000"></div>
</form>
</div>
jQuery スライダー送信コード (最終的には AJAX によって処理される)
$(document).ready(function() {
$("#psiSlider" ).slider({
// options
start: function (event, ui) {
},
slide: function( event, ui ) {
var curValue = ui.value || initialValue;
var target = ui.handle || $('.ui-slider-handle');
var tooltip = '<div class="tooltip"><div class="tooltip-inner">' + curValue + '</div><div class="tooltip-arrow"></div></div>';
$(target).html(tooltip);
},
change: function(event, ui) {
$('#pumpSlider').submit();
}
});
$("#gpmSlider" ).slider({
// options
start: function (event, ui) {
},
slide: function( event, ui ) {
var curValue = ui.value || initialValue;
var target = ui.handle || $('.ui-slider-handle');
var tooltip = '<div class="tooltip"><div class="tooltip-inner">' + curValue + '</div><div class="tooltip-arrow"></div></div>';
$(target).html(tooltip);
},
change: function(event, ui) {
$('#pumpSlider').submit();
}
});
});
フォーム送信時に p 変数と g 変数がキャプチャされないのはなぜですか? どんな提案でも大歓迎です。