2016-02-25 2 views
0

У меня есть два выпадающие при получении значения из базы данных:Фильтрация выпадающего форма с jquery.ajax

Table_Buildings

|id|---|building_name|

Table_Floors

|id|---|Floor_name|---|building(Foreign key to table_Buildings)|

и в моей форме

Dropdown: здание)

$db->setQuery("SELECT buildings.building_name, floors.id 
       FROM buildings 
       INNER JOIN floors 
       ON buildings.id=floors.id" 

Dropdown: этаж)

$db->setQuery("SELECT floor_name, id FROM floors"); 

Для фильтрации моего раскрывающегося списка Я хочу использовать этот скрипт:

<script type="text/javascript"> 
var xhr; 
jQuery(function($) { 
    $('#filter_building').change(function(){ 
     var filterBuilding = $('#filter_building').val(); 
     if (xhr && xhr.abort) { 
      xhr.abort();xhr=false; 
      } 
     xhr = jQuery.ajax({ 
      url: 'index.php', 
      data: 'option=com_mycomponent', 
      success: function(data){ 
       jQuery('#filter_building').replaceWith(data); 
      } 
     }); 
    }); 
}); 
</script> 

Но где-то не так, и это не работает.

+0

, что была ошибка, которую вы получили? – Gopalakrishnan

+0

нет ошибки, мой второй раскрывающийся список загружает все параметры, не завися от первого раскрывающегося списка. – allogos

+0

Вы передали значение здания для работы и использовали его в запросе с условием WHERE? Думаю, ты этого не делал. – Gopalakrishnan

ответ

0
$('#filter_building').change(function(){ 

    var buildingId = $(this).val(); 

    $.ajax({ 
     url: "index.php", 
     type: "post", 
     data: {buildingId: buildingId}, 
     success: function(data) { 
      $('select#floor-id').html(data); 
      // data = '<option>val1</option><option>val2</option>' 
     } 
    }); 
}): 
0

У меня есть образец JQuery и функции в index.php Jquery и Ajax

$('#filter_building').change(function(){ 
var buildingId = $('#filter_building').val(); 
$.ajax({ 
    url: "index.php", 
    type: "post", 
    data: {buildingId: buildingId}, 
    success: function(data) { 
     if(data != "false") 
    { 
     $('#Floor').html(data); 
    } 
    else{ 
    alert("No value");} 
    } 
}); 
}); 

И В index.php странице

$buildingId = JRequest::getVar('buildingId'); 
$db->setQuery("SELECT floor_name, id FROM floors WHERE filter_building='".$_GET['filter_building']."'"); 
$db->query(); 
$num_rows = $db->getNumRows(); 
if($num_rows>0){ 
while($nt = $db->loadAssoc()){ 
echo "<option value=$nt['id']>$nt['floor_name']</option>"; 
} 
} 
else 
{ 
echo "false"; 
} 
+0

вот мой код для первых выпадающих списков: $ items = array(); $ db = JFactory :: getDbo(); $ items [] = "| Выберите [c]"; $ db-> setQuery ("SELECT #__ pk_buildings.building_name, #__ pk_floors.id FROM #__pk_buildings INNER JOIN #__pk_floors ON #__ pk_buildings.id = # __ pk_floors.ID "); $ Результаты = $ db-> loadObjectList(); Еогеасп ($ Результаты $ результат) { $ значение = $ result-> Id; $ этикетка = $ result-> building_name; $ пункты [] = $ значение '|' $ этикетка; } $ пункты = взрывать ("\ п", $ пункты); возвращение $ пунктов; – allogos

+0

и второй раскрывающийся:.. $ элементы = массив (); $ дб = JFactory :: getDbo(); $ пункты [] = "| Пожалуйста, выберите [с]"; $ db-> SetQuery ("SELECT фл oor_name, id FROM #__pk_floors WHERE building = '". $ _ GET [' filter_building ']."' "); $ results = $ db-> loadObjectList(); foreach ($ results as $ result) { $ value = $ result-> id; $ label = $ result-> floor_name; $ items [] = $ value. '|'. $ Label; } $ items = implode ("\ n", $ items); return $ items; – allogos

+0

ajax: allogos

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