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

21 Kontribusi 4 Poin

Diperbarui 1 tahun yang lalu

2 Jawaban:

<div>Kamu salahnya itu yg query terakhir.<br>Kan kamu berencana menggunakan tabel jadwal dan tabel kelas sebagai pilihan list kelas nya.<br><br>Ketika dipilih harusnya yg muncul siswa2 dgn id kelas tersebut.<br><br>Tapi bukannya id kelas.. yg kamu gunakan untuk mencari itu justru id siswa. Itu kesalahannya</div>

avatar GrennKren
@GrennKren

62 Kontribusi 47 Poin

Dipost 1 tahun yang lalu

Tanggapan

di query ambil.php nya ya??

Ya dibagian situ

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"

<div>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.<br>Contoh load file jquery seperti ini yang diambil dari CDN :</div><pre>&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js"&gt;&lt;/script&gt;</pre><div><br>Semoga berhasil</div>

avatar ahanafi
@ahanafi

815 Kontribusi 552 Poin

Dipost 1 tahun yang lalu

Tanggapan

tetap gak jalan dan errornya tetap

Login untuk ikut Jawaban