PHP заполнить выпадающий список с помощью jquery

0

У меня есть сценарий, который извлекает параметры из скрипта php для заполнения выпадающего списка на главной странице.

Здесь javascript

   <script>
   //# this script uses jquery and ajax it is used to set the values in
           $(document).ready(function(){   
                //# the time field whenever a day is selected. 
                $("#day").change(function() {   

                      var day=$("#day").val();
                      var doctor=$("#doctor").val();

                      $.ajax({
                          type:"post",
                          url:"time.php",
                          data:"day="+day+"&doctor="+doctor,
                          dataType : 'json'
                          success: function(data) {
                                //# $("#time").html(data);
                                var option = '';
                                $.each(data.d, function(index, value) {
                                     option += '<option>' + value.timing + '</option>';
                                });
                                $('#timing').html(option);
                             }
                       });
                  });
             });
   </script>

Здесь php-скрипт, который получает данные из базы данных.

  <?php
    $con = mysqli_connect("localhost","clinic","myclinic","myclinic");

    // Check connection
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $doctor = $_POST['doctor'];
    $day = $_POST['day'];

    $query = "SELECT * FROM schedule WHERE doctor='" .$doctor."'AND day='" .$day. "'";

    $result = mysqli_query($con, $query);

    //$res = array();

    echo "<select name='timing' id='timing'>";

    //Initialize the variable which passes over the array key values
    $i = 0;                                 

    //Fetches an associative array of the row
    $row = mysqli_fetch_assoc($result);

    // Fetches an array of keys for the row.    
    $index = array_keys($row);             

    while($row[$index[$i]] != NULL)
    {
        if($row[$index[$i]] == 1) {             
            //array_push($res, $index[$i]);
            json_encode($index[$i]);

            echo "<option value='"  . $index[$i]."'>" . $index[$i] . "</option>";
        }
        $i++;
    }       

    echo json_encode($res);

    echo "</select>";

  ?>

Это не работает. Я получаю сообщение об ошибке с консоли, пропуская "}" в javasrcipt на линии

  $("#day").change(function(){

Я тоже не могу найти ошибку.

Теги:

3 ответа

3

Вам нужно добавить запятую на строку выше той, которая вызывает ошибку:

dataType : 'json',
  • 0
    Ах, мой плохой. Это все еще не заполняет список. Можете ли вы взглянуть на мой код и посмотреть, что не так?
0

Трудно сказать, где проблема, потому что вы смешиваете вещи вместе. На стороне Javascript вы ожидаете JSON, но на стороне PHP вы создаете HTML.

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

Эта строка ничего не делает (функция возвращает значение, но не изменяет ее)

json_encode($index[$i]);

Эта строка не имеет смысла - переменная $ res не инициализируется;

echo json_encode($res);
0

Это потому, что у вас нет запятой на линии над ней...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню