Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nie można wypełnić połączonej listy rozwijanej za pomocą Ajax i Javascript

Polecam 2 zmiany -

1. Załaduj opcje wyboru kategorii podczas ładowania strony, zamiast używać onclick .
-Dodaj onload="getcategory()" do tagu ciała.

2. Załaduj opcje wyboru podkategorii przy zmianie kategorii.
-Dodaj onchange="getsubcategory(this)" do Twojego <select id="category"> i usuń onclick="getsubcategory(cat)" z Twojego <select id="subcat" >
-Następnie użyj var catval = cat.options[cat.selectedIndex].value; w Twojej getsubcategory() aby uzyskać wybraną wartość.

Wyglądałoby to teraz jak -

...
<!DOCTYPE html>
<html>
  <head>
    <script>
    function getcategory() {
      var xmlhttp;
      if(window.XMLHttpRequest) {
        //code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp= new XMLHttpRequest();
      } else {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange=function() {
        if(xmlhttp.readyState==4 && xmlhttp.status==200) {
          document.getElementById("category").innerHTML=xmlhttp.responseText;
        }
      }
      xmlhttp.open("GET","AddItemCat.php","true");
      xmlhttp.send();
    }
    function getsubcategory(cat) {
      var xmlhttp;
      var catval = cat.options[cat.selectedIndex].value;
      if(window.XMLHttpRequest) {
        //code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp= new XMLHttpRequest();
      } else {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange=function() {
        if(xmlhttp.readyState==4 && xmlhttp.status==200) {
          document.getElementById("subcat").innerHTML=xmlhttp.responseText;
        }
      }
      xmlhttp.open("GET","AddItemSubCat.php?cat="+catval,"true");
      xmlhttp.send();
    }
  </script>
</head>
<body onload="getcategory()">
  <form action="<?PHP echo $_SERVER['PHP_SELF'] ?>" name="additem" enctype="multipart/form-data" method="POST">
    <table>
    <tr>
      <td>Select Category: </td>
        <select id="category" onchange="getsubcategory(this)">
          <option value=""></option>
        </select>
      </td>
    </tr>
    <tr>
      <td>Select SubCategory</td>
      <td>
        <select id="subcat">
          <option value=""></option>
        </select>
      </td>
    </tr>
  </table>
  </form>
</body>
</html>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolumna BLOB/TEXT „wartość” użyta w specyfikacji klucza bez długości klucza

  2. Jak rozwiązać pakiet zbyt duży wyjątek XAMPP Mysql

  3. ZAŁADUJ INFILE DANYCH na zdalnym komputerze

  4. ADDTIME() zwraca 24 godzinny czas

  5. Czy bardziej wydajne jest przekazywanie dużych pakietów parcelable lub przekazywanie identyfikatora i bazy danych zapytania?