2015-03-19 4 views
4

Я показываю 2 раскрывающегося списка. код на HTML страницеРаскрывающийся список, не отображающий данные

<head> 
<script> 
$(document).ready(function(){ 
    $('#cat').change(function(){ 
     var catid = $('#cat').val(); 
     if(catid != 0) 
     { 
      $.ajax({ 
       type:'post', 
       url:'fetchsubcat.php', 
       data:{id:catid}, 
       cache:false, 
       success: function(returndata){ 
        $('#subcat').html(returndata); 
       } 
      }); 
     } 
    }) 
}) 
</script> 
</head> 
<body> 
<fieldset> 
    <label>Category</label> 
    <select name="catname" id="cat"> 
     <option value="0">Please Select a category</option> 
     <?php 
      require 'connection.php'; 
       $sql = "SELECT * FROM category"; 
       $result = mysqli_query($con, $sql); 

       if (mysqli_num_rows($result) > 0) { 
        while($row = mysqli_fetch_assoc($result)) 
         { 
          $catname=$row["catname"]; 
          $catid=$row["id"]; 
     ?> 
     <option value="<? echo $catname.'-'.$catid;?>"><? echo $catname;?></option> 
         <?} 
       }?> 
    </select> 
</fieldset> 

<fieldset> 
    <label>Subcategory</label> 
    <select name="subcatname" id="subcat"> 
     <option></option> 
    </select> 
</fieldset> 
</body> 

код на fetchsubcat.php странице

<?php 
    require 'connection.php'; 
     $sql = "SELECT * FROM subcategory where catid='".$_POST['id']."'"; 
     $result = mysqli_query($con, $sql); 

     if (mysqli_num_rows($result) > 0) { 
      while($row = mysqli_fetch_assoc($result)) 
       { 
        $subcatname=$row["subcatname"]; 
        $subcatid=$row["id"]; 

?> 

<option value="<? echo $subcatname.'-'.$subcatid;?>"><? echo $subcatname;?></option> 

вид таблицы категории

id catname 

вид подкатегорию таблицы

id catname catid subcatname 

я хочу что, когда я выбираю категорию во втором раскрывающемся списке должны отображаться только те подкатегории, которые находятся под выбранной категорией, но проблема в том, что в подкатегории при выборе категории ничего не отображается. кто может мне помочь

+0

любая ошибка в консоли браузера ..? – Sarath

+0

Проверьте, что вы получаете массив категорий, и после этого ваш массив подкатегорий или нет? может быть проблема в вашем массиве подкатегорий. Либо он пуст, либо ваш запрос ajax обрабатывается неправильно. –

+0

@Sarath без ошибок в консоли – kavi

ответ

0

Получаете ли вы какие-либо ошибки из результата AJAX? Я сделал что-то подобное, и когда я не получил результатов, как ожидалось, оказалось, что мне нужно отправить синхронный запрос в AJAX и заставить браузер ждать возвращенных данных.

Кроме того, с известным идентификатором категории (например) проверьте запрос, заменив _POST['id'] на номер, который, как вы знаете, существует в вашей базе данных, которая имеет связанные подкатегории. С этим на месте приложение работает так, как ожидалось?

+0

У меня не было никаких ошибок, но данные также не были отображены – kavi

+0

Вы можете показать свой массив подкатегорий здесь? –

+0

Я бы попробовал это. на странице fetchsubcat.php сделать простое эхо строки. Обратный вызов успеха AJAX должен затем интерпретировать это как ваш «returndata» - вы что-нибудь видите? Также ваш вызов AJAX не указывает тип данных для возвращаемой информации. Может помочь. –

0

попробовать это ..

<script> 
$(document).ready(function(){ 
    $('#cat').change(function(){ 
     var catid = $('#cat').val(); 
     if(catid != 0) 
     { 
      $.ajax({ 
       type:'post', 
       url:'fetchsubcat.php', 
       data:{id:catid}, 
       cache:false, 
       dataType: "json", 
       success: function(returndata){ 
        $.each(returndata, function(i, item) { 
        $('#subcat').append('<option value="'+returndata[i].subcatname+'-'+returndata[i].subcatid+'">'+returndata[i].subcatname+'</option>'); 
        });​ 
       } 
      }); 
     } 
    }) 
}) 
</script> 

В fetchsubcat.php

<?php 
    require 'connection.php'; 
     $sql = "SELECT * FROM subcategory where catid='".$_POST['id']."'"; 
     $result = mysqli_query($con, $sql); 
     $rows = Array(); 
     while($row = mysqli_fetch_assoc($result)) { 
       $rows[] = $row; 
     } 
     print json_encode($rows); 
?> 
+0

Я получаю синтаксическую ошибку в части скрипта – kavi

+0

вы можете поделиться массивом, возвращаемым с php .. – Sarath

0

изменить код из fetchsubcat.php в

<?php 
    require 'connection.php'; 
    $catid = $_REQUEST['id']; 

     $sql = "SELECT * FROM subcategory where catid='".$catid."'"; 
     $result = mysqli_query($con, $sql); 

     if (mysqli_num_rows($result) > 0) 
      { 
       while($row = mysqli_fetch_assoc($result)) 
        { 
         $subcatname=$row["subcatname"]; 
         $subcatid=$row["id"]; 
?> 
<option value="<? echo $subcatname.'-'.$subcatid;?>"><? echo $subcatname;?></option> 
        <?} 
      } 
     else 
      {?> 
       <option value="">No sub category </option> 
      <?}?> 
Смежные вопросы