sql >> Databasteknik >  >> RDS >> Mysql

Det går inte att fylla i kedjad listruta med Ajax och Javascript

Jag skulle rekommendera 2 ändringar -

1. Ladda dina kategorivalsalternativ vid sidladdning, istället för att använda onclick .
-Lägg till onload="getcategory()" till din kroppsetikett.

2. Ladda dina alternativ för underkategorival vid ändring av kategori.
-Lägg till onchange="getsubcategory(this)" till din <select id="category"> , och ta bort onclick="getsubcategory(cat)" från din <select id="subcat" >
-Använd sedan var catval = cat.options[cat.selectedIndex].value; i din getsubcategory() för att få det valda värdet.

Det skulle nu se ut som -

...
<!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. Kontrollera efter värde i MySQL-raden

  2. Beräknar du Z-Score för varje rad i MySQL? (enkel)

  3. SQL Server - Returvärde efter INSERT

  4. Hur man lägger till flera rader med Infoga ... PÅ DUBLIKAT UPPDATERING AV NYCKEL med knex