2016-10-20 4 views
1

Я пытаюсь создать форму с динамическим выпадающим списком, извлекающим данные из MYSQL. Моя база данных без ошибок.Динамический выпадающий список с PHP и MYSQL

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

Код для динамической форме ниспадающего:

<?php 
    include_once "connection.php"; 
?> 

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Dropdown Ajax</title> 
    </head> 
    <body> 
     <div class="country"> 
      <label>Country</label> 
      <select name="country" onchange="getId(this.value);"> 
       <option value="">Select Country</option> 
       //populate value using php 
       <?php 
        $query = "SELECT * FROM country"; 
        $results=mysqli_query($con, $query); 
        //loop 
        foreach ($results as $country){ 
       ?> 
         <option value="<?php echo $country["cid"];?>"><?php echo $country["country"];?></option> 
       <?php 
        } 
       ?> 
      </select> 
     </div> 

     <div class="city"> 
      <label>City</label> 
      <select name="city" id="cityList"> 
       <option value=""></option> 
      </select> 
     </div> 
    <script src="https://code.jquery.com/jquery-3.1.1.js" integrity="sha256- 
16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA=" crossorigin="anonymous"> 
    </script> 
    <script> 
     function getId(val){ 
      //We create ajax function 
      $.ajax({ 
       type: "POST", 
       url: "getdata.php", 
       data: "cid="+val, 
       success: function(data){ 
        $(#cityList).html(data); 
       } 
      }); 
     } 
    </script> 
    </body> 
</html> 

базы данных код подключения:

<?php 
    $con = mysqli_connect("localhost", "root", "kensift", "tuts"); 
    //Check connection 
    if(mysqli_connect_errno()){ 
     echo "Failed to connect:".mysqli_connect_errno(); 
    } 
?> 

Код для 2 динамических выпадающих:

<?php 
    include_once "connection.php"; 
    if (!empty($_POST["cid"])) { 
     $cid = $_POST["cid"]; 
     $query="SELECT * FROM city WHERE cid=$cid"; 
     $results = mysqli_query($con, $query); 

     foreach ($results as $city){ 
?> 
      <option value="<?php echo $city["cityId"];?>"><?php echo $city["city"];?> 
    </option>  
<?php 
     } 
    } 
?> 

Эти три части кода находятся в разных файлах.

ответ

1

Я думаю, что ваш код корректен только забыл цитату ID "#cityList".

Это должно быть

$("#cityList").html(data); 
+0

эй сатья! не могу поблагодарить вас, достаточно человека ... я забыл добавить «» в cityList ... Какой идиот ... он работает сейчас ... Спасибо миллион –

0

Я думаю, ваша проблема может быть здесь:

foreach ($results as $country){ 
?> 
<option value="<?php echo $country["cid"];?>"><?php echo    
$country["country"];?></option> 
<?php 
} 

Try и использовать вместо этого:

foreach ($results as $country){ 
echo'<option value="'.$country["cid"].'">'.   
$country["country"].'</option>'; 
} 
Смежные вопросы