Я отправляю несколько массивов в php-файл через ajax. Я думаю, что он работает правильно. Вот код.Передача нескольких массивов в файл php через JQuery ajax
function call_ajax(){
var category=new Array();
$('.a:checked').each(function(i){
category[i] = $(this).val();
});
var location=new Array();
$('.b:checked').each(function(j){
location[j] = $(this).val();
});
var experience=new Array();
$('.c:checked').each(function(k){
experience[k] = $(this).val();
});
$.ajax({
type: 'post',
url: 'check3.php',
data: {cat:category, loc:location, exp:experience},
cache: false,
beforeSend: function() {
$('.a').hide();
$('.b').hide();
$('.c').hide();
},
success: function(data) {
console.log('ok');
alert(data);
}
});
}
О файле PHP я м, получающего их в seprate массивы, чтобы сделать динамический запрос, где положение Вот файл PHP.
<?php
include "function.php";
$cat=0;$loc=0;$exp=0;
if(isset($_POST['cat']))
{
$category=$_POST['cat'];
$length=count($category);
$cat=" catecory_filter=";
for($i=0;$i<$length;$i++)
{
if($i==$length-1){ $cat=$cat." '$category[$i]' "; }
else{ $cat=$cat." '$category[$i]' or category_filter="; }
}
}
if(isset($_POST['loc']))
{
$location=$_POST['loc'];
$length=count($location);
$loc=" location_filter=";
for($i=0;$i<$length;$i++)
{
if($i==$length-1){ $loc=$loc." '$location[$i]' "; }
else{ $loc=$loc." '$location[$i]' or location_filter="; }
}
}
if(isset($_POST['exp']))
{
$experience=$_POST['exp'];
$length=count($experience);
$exp=" experience_filter=";
for($i=0;$i<$length;$i++)
{
if($i==$length-1){ $exp=$exp." '$experience[$i]' "; }
else{ $exp=$exp." '$experience[$i]' or experience_filter="; }
}
}
//Query Construction Portion
if($cat && $loc==0 && $exp==0)
{
$result="select * from jobs_table where ($cat)";
echo "$result";
}
else if($cat==0 && $loc && $exp==0)
{
$result="select * from jobs_table where ($loc)";
echo "$result";
}
else if($cat==0 && $loc==0 && $exp)
{
$result="select * from jobs_table where ($exp)";
echo "$result";
}
else if($cat==0 && $loc && $exp)
{
$result="select * from jobs_table where ($loc) AND ($exp)";
echo "$result";
}
else if($cat && $loc && $exp==0)
{
$result="select * from jobs_table where ($cat) AND ($loc)";
echo "$result";
}
else if($cat && $loc==0 && $exp)
{
$result="select * from jobs_table where ($cat) AND ($exp)";
echo "$result";
}
else if($cat && $loc && $exp)
{
$result="select * from jobs_table where ($cat) AND ($loc) AND ($exp)";
echo "$result";
}
else if($cat==0 && $loc==0 && $exp==0)
{
$result="select * from jobs_table";
echo "$result";
}
else
{
echo "No match found";
}
?>
Проблема: инструкции IF не работают. Только первые три и последние последние утверждения IF области Query construction выполняются при каждом значении $ cat, $ loc и $ exp. Пожалуйста, помогите мне решить проблему. Спасибо заранее.
микшерного целых и сравнение текстов. используйте $ cat = ''; как строку, а затем проверить, используя if (strlen ($ cat) == 0) http://php.net/manual/en/language.operators.comparison.php – Waygood
Спасибо, много ..... это работает – user1986484