Webサイトのチェック ボックス ベースのフィルター操作に取り組んでいます。これには、さまざまなパラメーターでレコードのリストをフィルター処理する複数のチェックボックスがあります。チェックボックスの最初のセットに基づいています。これはそのためのjs関数です。
HTML:
<input type="checkbox" id="checkbox1" class="checkbox1" value="<?php echo $suburb['suburb_name']?>" name="Suburb_check[]" onClick="changeResults();" onChange="" >
Javascript:
function changeResults(){
var data = { 'venue[]' : []};
$("input[name=Suburb_check[]]:checked").each(function() { var chck1 = $(this).val();
data['venue[]'].push($(this).val());
dataString =data['venue[]'.toString()].toString();
});
$.ajax({
type : 'POST',
url : 'process.php',
data : "dataString="+dataString,
success : function(data){
$('#project_section').html(data);
}
});
}
これが行うことは、レコードをフィルタリングし、チェックボックスの2番目のセットをロードすることです.1番目のセットのチェックボックス)=>地域の場合、2番目は=>地域 の場合ですチェックボックスの値を渡す配列を作成し、それを文字列に変換しました( .toString ) を .php ファイルに渡します。
同様に、チェックボックスの 2 番目のセットの関数を作成しました。 HTML
<input type="checkbox" onClick="changeLocality();" id="localityCheck" value="<?php echo $locality['locality_name'];?>" name="Locality_check[]">
JS
function changeLocality(){
var dataLocality = {'locality[]' : []};
$("input[name=Locality_check[]]:checked").each(function() {
var chcklocal = $(this).val();
dataLocality['locality[]'].push($(this).val());
localityString =dataLocality['locality[]'.toString()].toString();
});
$.ajax({
type : 'POST',
url : 'processLocality.php',
data : "localityString="+localityString,
success : function(dataLocality){
$('#project_section').html(dataLocality); // replace the contents coming from php file
}
});
}
値をphpファイルに渡しますが、$_POSTを使用してそれらを取得しようとすると、文字列が互いに混ざり合います。つまり、地域の値は地域文字列に入り、その逆も同様です(同じ結果の配列を使用してこれを試したので、文字列に切り替えました)。これを修正することはできません.なぜこれが起こっているのですか?これは私が値を投稿するphpファイルです。processLocality.php
<?php session_start();
include_once("includes/classes/db_connect.php");
include_once("pagination/paginator.class.php");
$pages = new Paginator();
$regions = "'".$_POST['dataString']."'";
echo $regions;
$arr = explode(",",$regions);
$getFormatedSuburb = implode("','",$arr);
$locality = "'".$_POST['localityString']."'";
echo $locality;
$arrLocal = explode(",",$locality);
$getFormatedLocality = implode("','",$arrLocal);
//Here I get the strings mixed with each other!!
?>
必要な形式で SQL クエリの IN 句に渡すために、文字列に式を追加しました。取得した文字列には、地域と地域の両方の値が含まれています。レコードをフィルタリングするための2 つの異なるパラメーターであるため、両方を別々に使用したいと考えています。
Pune East,
Pune West, //1 and 2 are regions
Aundh,
Kalyaninagar //3 and 4 are localities
また、私のアプローチが正しいことを知りたいのですが、これを達成するためのより良い方法はありますか? どんな助けでも感謝します。
ありがとう