membuat Combobox Bertingkat

saya membuat combobox bertingkat namun datanya yang di panggil tidak muncul
yang saya inginkan jika kelas sudah di pilih makan akan muncul data siswa yang ada pada kelas tersebut.
berikut struktur databasenya.
Screenshot-263.pngScreenshot (263).png
Berikut codingnya
Comboboxnya
<div class="row">
      <div class="form-group col-4">
        <label for="id_jadwal">Kelas</label>
         <select name="id_jadwal" id="id_jadwal" class="form-control" required>
          <option hidden>Pilih Kelas</option>
         <?php
       $kelas = $conn->query("SELECT * FROM tb_jadwal INNER JOIN tb_kelas ON tb_jadwal.id_kelas = tb_kelas.id_kelas");
         while ($as = $kelas->fetch_array()) : ?>
         <option value="<?= $as['id_jadwal']; ?>">
          <?= $as['kelas']; ?>
           </option>
           <?php endwhile; ?>
           </select>
          </div>
          <div class="form-group col-4">
            <label for="id_siswa">Nama Siswa</label>
              <select name="id_siswa" id="id_siswa" class="form-control" required>
             <option hidden>Pilih Siswa</option>
                </select>
              </div>
              </div>
Berikut javasriptnya
<script>
    $(document).ready(function() {
        $('#id_jadwal').on('change', function() {
            var id_jadwal = $(this).val();
            $.ajax({
                url: '?page=ambil',
                type: "POST",
                data: {
                    modul: 'siswa',
                    id: id_jadwal
                },
                success: function(respond) {
                    $("#id_siswa").html(respond);
                },
                error: function() {
                    alert("Gagal Mengambil Data");
                }
            })
        })
    });
</script>

Edit : File ambil.php 
$id = $_POST['id'];
$modul = $_POST['modul'];

if ($modul == 'siswa') {
    $sql = mysqli_query($conn, "SELECT * FROM tb_siswa where id_kelas='$id'") or die(mysqli_error($conn));
    $siswa = '<option>Pilih Siswa</option>';
    while ($dt = mysqli_fetch_array($sql)) {
        $siswa .= '<option value="' . $dt['id_siswa'] . '">' . $dt['siswa'] . '</option>';
    }
    echo $siswa;
}

avatar arifrohman

@arifrohman

17 Kontribusi 4 Poin


Jawaban

Kamu salahnya itu yg query terakhir.
Kan kamu berencana menggunakan tabel jadwal dan tabel kelas sebagai pilihan list kelas nya.

Ketika dipilih harusnya yg muncul siswa2 dgn id kelas tersebut.

Tapi bukannya id kelas.. yg kamu gunakan untuk mencari itu justru id siswa. Itu kesalahannya
avatar GrennKren

@GrennKren

60 Kontribusi 44 Poin

  • di query ambil.php nya ya?? - @arifrohman
  • Ya dibagian situ - @GrennKren
  • sudah aku ubah tapi tetepe gak bisa saya cek di console ada error kayak ini "Uncaught ReferenceError: $ is not defined at home?page=plus:230:5" - @arifrohman


Kalo berdasarkan komentar yg ada diatas tentang error ini "Uncaught ReferenceError: $ is not defined at home?page=plus:230:5", itu artinya file jQuery di page yang sedang diakses tidak terload dengan baik. Silahkan cek lagi apakah file jQueynya sudah terload atau belum.
Contoh load file jquery seperti ini yang diambil dari CDN :
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>

Semoga berhasil
avatar ahanafi

@ahanafi

803 Kontribusi 534 Poin


Login untuk gabung berdiskusi