Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verkettete Dropdown-Liste kann nicht mit Ajax und Javascript gefüllt werden

Ich würde 2 Änderungen empfehlen -

1.Laden Sie Ihre Kategorieauswahloptionen beim Laden der Seite, anstatt onclick zu verwenden .
-Fügen Sie onload="getcategory()" hinzu zu Ihrem Body-Tag.

2.Laden Sie Ihre Unterkategorie-Auswahloptionen beim Wechsel der Kategorie.
-Fügen Sie onchange="getsubcategory(this)" hinzu zu Ihrem <select id="category"> , und entfernen Sie onclick="getsubcategory(cat)" aus Ihrem <select id="subcat" >
-Dann verwenden Sie var catval = cat.options[cat.selectedIndex].value; in Ihrem getsubcategory() um den ausgewählten Wert zu erhalten.

Es würde jetzt wie folgt aussehen:-

...
<!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>