Выпадающий список обновляет другой выпадающий список с помощью jquery и sql

#javascript #php #jquery #updates

#javascript #php #jquery #Обновления

Вопрос:

Как я могу обновить другой выпадающий список с помощью jquery с помощью sql. Это означает из базы данных.

   $('#typeOfGlass').on('change', function(){
   console.log($('#typeOfGlass').val());
    $('#glassWidth').html('');
    if($('#typeOfGlass').val()==15){
        $('#glassWidth').append('<option value="19">19</option>');
        $('#glassWidth').append('<option value="20">20</option>');
        $('#glassWidth').append('<option value="21">21</option>');
    }else{
        $('#glassWidth').append('<option value="6">6</option>');
        $('#glassWidth').append('<option value="7">7</option>');
        $('#glassWidth').append('<option value="8">8</option>');
        $('#glassWidth').append('<option value="9">9</option>');
    }
});
  

Я использую этот, но понятия не имею, как сделать это из базы данных.

 $sqlq="SELECT DISTINCT daerah FROM kampung WHERE negeri='$negeri'";
    $result_set=mysqli_query($conn, $sqlq);
    while($row=mysqli_fetch_array($result_set, MYSQLI_ASSOC))
    {
        echo "<option value=".$row['daerah'].">".$row['daerah']."</option>";
    }
  

Есть идеи?

Комментарии:

1. Для достижения этой цели вы можете использовать AJAX, однако ваш вопрос слишком широк, чтобы на него можно было ответить эффективно.

Ответ №1:

Первое, что вам нужно сделать, это изменить запрос или добавить информацию в вашу таблицу, чтобы у программы был способ узнать, добавлять или не добавлять конкретное <option> в <select> .

Затем извлеките все строки в массив. Это должно сработать, но я его не тестировал:

 $rows = array();
while ($rows[] = mysqli_fetch_array($result_set, MYSQLI_ASSOC));
  

Теперь передайте эти данные в JavaScript:

 echo "<script> var data = " . json_encode($rows) . "; </script>";
  

Наконец, при #typeOfGlass изменении очистите #glassWidth , затем повторите data и добавьте только соответствующие элементы, в зависимости от #typeOfGlass значения.

Ответ №2:

Вариантом достижения этого может быть использование Ajax, как предложил @Rory McCrossan. Процесс довольно долгий для точного ответа, но я дам вам несколько шагов, которые вам нужно будет выполнить.

Если ваш запрос работает в вашем php, и ваш html тоже работает нормально, вам просто нужно склеить их вместе. Для этого вы можете использовать javascript. Это expmaple запроса Ajax

     $.ajax({
                url: www.yoursite.com, //file you made to process the request
                type: "GET", // or POST 
                success: function(data) { 
                    if (data.success === 'ok'){
                      // code of what to do if the call returns ok
                      // probably update your options
                    }
                },
                error: function(exeption){
                   var response = jQuery.parseJSON(exeption.responseText);
                   alert(response.error);
// what to do if the process fail
                }
  

Поэтому используйте php, чтобы make обработал запрос и вернул вам новые параметры. Если у вас появятся предложения по более конкретной части, сообщите нам об этом. Удачи