2015-04-06 2 views
0

Я хочу отобразить взаимосвязанный выпадающий список. Когда выбрано 1-е раскрывающееся меню, т. Е. Выбранный список областей, список связанных секторов будет заполнен во втором выпадающем списке. До этого я могу это сделать. Но после второго выпадающего списка, т.е. сектора выбрано, я хочу отобразить графики, которые будут основываться как на «области», так и «секторе». Эта часть я не могу этого сделать. Я могу отображать графики, основанные только на «Секторе», а не на Районе и в Секторе.дисплей 3-й раскрывающийся список на основе 1-го 2 раскрывающегося списка

Вот мой код

Fetching Секторы

function showItems(sel) { 
    var cat_id = sel.options[sel.selectedIndex].value; 
    $("#output1").html(""); 
    $("#output2").html(""); 
    if (cat_id.length > 0) { 

    $.ajax({ 
      type: "POST", 
      url: "fetch_sectors.php", 
      data: "cat_id="+cat_id, 
      cache: false, 
      beforeSend: function() { 
       $('#output1').html('<img src="loader.gif" alt="" width="24" height="24">'); 
      }, 
      success: function(html) {  
       $("#output1").html(html); 
      } 
     }); 
    } 
} 

Получение участки (на основе только лишь сектор)

function showItemDet(sel) { 
    var item_id = sel.options[sel.selectedIndex].value; 
    $("#output2").html(""); 
    if (item_id.length > 0) { 
    $.ajax({ 
      type: "POST", 
      url: "fetch_plot.php", 
      data: "item_id="+item_id, 
      cache: false, 
      beforeSend: function() { 
       $('#output2').html('<img src="loader.gif" alt="" width="24" height="24">'); 
      }, 
      success: function(html) {  
       $("#output2").html(html); 
      } 
     }); 
    } 
} 

Как я могу это сделать ?.

*** EDIT ****

я сделал что-то вроде этого

<script> 
function showPlots(area, sector) { 
    var item_id = sel.options[sel.selectedIndex].value; 
    var cat_id = sel.options[sel.selectedIndex].value; 
    $("#output2").html(""); 
    if (item_id.length > 0) { 
    $.ajax({ 
      type: "POST", 
      url: "fetch_plot.php", 
      data: {area: item_id, sector:cat_id}, 
      cache: false, 
      beforeSend: function() { 
       $('#output2').html('<img src="loader.gif" alt="" width="24" height="24">'); 
      }, 
      success: function(html) {  
       $("#output2").html(html); 
      } 
     }); 
    } 
} 
</script> 

и fetch_plots

$area = ($_REQUEST["area"] <> "") ? trim(addslashes($_REQUEST["area"])) : ""; 
echo $area; 
$sector = ($_REQUEST["sector"] <> "") ? trim(addslashes($_REQUEST["sector"])) : ""; 
if ($item_id <> "" && $cat_id<>"") { 
$sql = "SELECT * FROM plots where area_id=".$area." AND sec_id=".$sector.""; 
echo $sql; 

$count = mysqli_num_rows(mysqli_query($con, $sql)); 
if ($count > 0) { 
$query = mysqli_query($con, $sql); 
?> 

<select name="plot"> 
    <option value="">Select Plot</option> 
    <?php while ($rs = mysqli_fetch_array($query)) { ?> 
    <option value="<?php echo $rs["plot_id"]; ?>"><?php echo $rs["name"]; ?></option> 
    <?php } ?> 
</select> 

<?php 
    } 
} 
?> 
+0

в этом случае передать «Район» и «Сектор». Ид во втором ajax –

+0

Я не получаю, как передать 2 значения в ajax или jquery – user2178637

+0

Используйте 'curlys' для создания списка значений для передачи. – DevlshOne

ответ

1
 $.ajax({ 
      type: "POST", 
      url: "fetch_plots.php", 
      data: {area:area, sector:sector}, 
      cache: false, 
      beforeSend: function() { 
       $('#output2').html('<img src="loader.gif" alt="" width="24" height="24">'); 
      }, 
      success: function(html) {  
       $("#output2").html(html); 
      } 
     }); 

fetch_plots.php

$area = (isset($_REQUEST["area"]) ? intval($_REQUEST["area"]) : 0); 
// assuming "$area" is an integer, not a varchar 
echo $area; 
$sector = (isset($_REQUEST["sector"]) ? intval($_REQUEST["sector"]) : 0); 
// assuming "$sector" is an integer, not a varchar 
echo $sector; 
if (!empty($area) && !empty($sector)) { 
    $sql = "SELECT * FROM plots where area_id=" . $area . " AND sec_id=" . $sector; 
echo $sql; 
$count = mysqli_num_rows(mysqli_query($con, $sql)); 
if ($count > 0) { 
    $query = mysqli_query($con, $sql); 
?> 
    <select name="plot"> 
     <option value="">Select Plot</option> 
     <?php 
      while ($rs = mysqli_fetch_array($query)) { 
     ?> 
       <option value="<?php echo $rs["plot_id"]; ?>"><?php echo $rs["name"]; ?></option> 
     <?php } ?> 
    </select> 
<?php 
    } 
} 
?> 
+0

Я отредактировал свой код, третий выпадающий список не отображается – user2178637

+0

Что возвращается AJAX-вызовом? Используйте консоль, чтобы узнать. – DevlshOne

+0

Кроме того, в вашем скрипте * PHP * '$ _REQUESTS' должен быть для' area' и 'sector', а не' item_id' и 'cat_id'. – DevlshOne

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

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