2012-06-11 3 views
-2

Я работаю над обработкой фильтра на основе флажка для сайта. У этого есть несколько флажков, которые фильтруют список записей по различным параметрам. Подобно тому, что сделано here. Теперь я справился для достижения определенного успеха, и я отфильтровал записи на основе первого набора флажков. Вот для него функция js.Управление строками с запросом ajax post и jquery

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); 
     } 
    }); 
} 

Что это делает фильтрует записи + загружает второй набор флажков установить чек, 1st коробка) = >для Регионов и 2nd is =>для Местностей Я создал массив для передачи значений флажка, а затем преобразовал его в строку (.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 из запроса в нужном формате. Теперь строки я получаю содержит значения из обоих регионов и localities.I хотят как по отдельности, так как они являются два различных параметры для фильтрации записей

 Pune East, 
     Pune West,  //1 and 2 are regions 
     Aundh, 
     Kalyaninagar  //3 and 4 are localities 

Кроме того, я хотел бы знать, мой подход correct.Any лучше способ достижения этого? Любая помощь приветствуется.
Thanks

+2

Вскипятите код и изолируйте проблему - никто не проделывает столько кода. – Repox

+0

@Repox Спасибо за вход! Причиной для добавления деталей я хотел убедиться, что я делаю свою точку зрения очень ясной. Я обновил вопрос. Надеюсь, что downvote идет именно этим! – KillABug

ответ

2

Попробуйте изменить селекторы. Вместо этого:

$("input[name=Suburb_check[]]:checked") 
.... 
$("input[name=Locality_check[]]:checked") 

ли это:

$("input[name=Suburb_check]:checked") 
.... 
$("input[name=Locality_check]:checked") 

Также разметка должна быть в форме:

<input type="checkbox" name="Suburb_check"> 

С тем же именем для каждого чекбокса группы.Имя не может содержать «[]»

+1

На самом деле это не решает проблему, и, видя, что мы не знаем, как выглядит HTML, невозможно определить, правильны ли токовые селекторы или нет. – Bojangles

+0

@endoalir Не работает, я добавил html для этого же. – KillABug

+0

@JamWaffles Обновлен вопрос с помощью HTML! – KillABug

Смежные вопросы