Mysql
 sql >> база данни >  >> RDS >> Mysql

Променете стойността на втория избор при първия избор

Както казахте, че нямате опит с jQuery или Ajax, ще публикувам отговора си с възможно най-много коментари. Предполагам, че имате две падащи менюта за избор на вашата страница.

Първият съдържа строителите, така че ще има id="builders" .

Вторият съдържа регионите, така че ще има id="regions" .

Доколкото разбирам, първият избор ще бъде точно този, който сте публикували във вашия въпрос, генериран от страна на сървъра (от PHP). Само ви моля да направите лека промяна в него, като всяка стойност на опцията бъде равна на ID на базата данни на създателя, а не на нейното име (освен ако първичният ключ на създателя не е тяхното име, а не ID). Това няма да има значение за крайния потребител, но ще бъде важно за нашето решение jQuery. Вторият ще бъде празен, тъй като идеята е да се запълни динамично с регионите, свързани с конструктора, избран в първото падащо меню.

А сега да преминем към кода на jQuery:

//Everything that goes below this first line will be ready as soon as the page is fully loaded
$(document).ready(function() {
  //The following code defines an event. More precisely, we are defining that the code inside it will run every time our select with id "builders" has its value changed
  $('#builders').change(function() {
    //$(this) is our builders select. $(this).val() contains the selected value, which is the ID of our selected builder
    var currentValue = $(this).val();
    //Now, this is our Ajax command that will invoke a script called get_regions.php, which will receive the builder's ID in $_GET['builder_id'] and you can use to query your database looking for all regions related to this builder. Make sure to create an array with the returned regions. Your get_regions.php's last line should be echo json_encode($regions); 
    $.get("get_regions.php", {'builder_id': currentValue}, function(data) {
      //Inside this function is the code that will run when we receive the response from our PHP script. It contains a JSON encoded list of regions, so first of all we need to parse this JSON
      var regions = $.parseJSON(data);
      //Before filling our second select dropdown with the regions, let's remove all options it already contains, if any
      $('#regions').empty();
      //Now, all there is left is to loop over the regions, adding each as an option of the regions dropdown. I'll do it the universal way
      for (var i = 0; i < regions.length; i++) {
        var regionOption = '<option value="'+regions[i]['region_name']+'">';
        regionOption += regions[i]['region_name'];
        regionOption += '</option>';
        $('#regions').append(regionOption);
      }
    });
  });
});

Въпреки всички синтактични грешки (не мога да тествам кода оттук), това трябва да свърши работа. Надяваме се, че коментарите са били достатъчно ясни, за да разберете как работят нещата в jQuery.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Данните за емотикони, извлечени чрез ODBC връзка, се появяват като въпросителен знак

  2. MySQL:Връщане на множество колони от вградена подзаявка

  3. MySQL срещу MongoDB 1000 четения

  4. Филтрирайте заявката на django по уникод знаци 🐲 или 💎 и т.н

  5. Laravel 5.3 различен брой, използвайки eloquent вместо Query Builder