从另一个输入中获取值,而无需在 php 中刷新页面

问题描述 投票:0回答:1

我有这个 fetch.php 文件

 $out='';
 while($row = mysqli_fetch_assoc($result)) {
 $out .=  '<option value='.$row["jam_mulai"].'>' .$row["jam_mulai"]. '-.$row["jam_berakhir"].'</option>'; 
} 
 echo $out;

我想将选项值中的数据获取到不同文件中的另一个选择选项。 到这个 input.php 文件

 <select class="form-control select2" name="nama_dokter" style="width: 100%;" id="nama_dokter">
                        <option value="" selected="true" disabled="disabled">Pilih Dokter</option>
                    <?php
                         $query  = mysqli_query($koneksi, "SELECT * FROM jadwal_praktek LEFT JOIN dokter
                                  ON jadwal_praktek.dokter_id=dokter.id WHERE status='Aktif' GROUP BY dokter_id");
                        while ($data = mysqli_fetch_array($query)){
                    ?>  

                       <option value="<?= $data['id_jadwal'];?>"><?php echo $data['nama_dkt'];?></option>
                    <?php } ?>
                    </select>

所以我希望如果用户选择的 jam_mulai 与数据库中已有的 jam_mulai 和 dokter_id 相同,那么选项值(input.php)的值将作为 jadwal_id 插入。

我的医生 (dokter_id) 有一个或多个不同时间 (jam_mulai) 的时间表 (jadwal_id)

here's the schedule table

我知道这真的很令人困惑,我也发现解释起来很混乱,但这就是我的意思。如果有人知道解决方案,请回复。预先感谢。

javascript php mysql ajax
1个回答
0
投票

fetch.php

$out = '';
while ($row = mysqli_fetch_assoc($result)) {
    $out .= '<option value="' . $row["jam_mulai"] . '">' . $row["jam_mulai"] . '-' . $row["jam_berakhir"] . '</option>';
}
echo $out;

input.php(html 和 js)

<select class="form-control select2" name="jam_mulai" style="width: 100%;" id="jam_mulai">
    <option value="" selected="true" disabled="disabled">Pilih Jam Mulai</option>
    <!-- Fetch and populate options using AJAX -->
</select>

<select class="form-control select2" name="nama_dokter" style="width: 100%;" id="nama_dokter">
    <option value="" selected="true" disabled="disabled">Pilih Dokter</option>
    <!-- Options will be dynamically populated using JavaScript -->
</select>

<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script>
    $(document).ready(function () {
        // Populate jam_mulai dropdown
        $.ajax({
            url: 'fetch.php',
            method: 'GET',
            success: function (data) {
                $('#jam_mulai').html(data);
            }
        });

        // Handle change event of jam_mulai dropdown
        $('#jam_mulai').on('change', function () {
            var selectedJamMulai = $(this).val();

            // Fetch and populate nama_dokter dropdown based on selectedJamMulai
            $.ajax({
                url: 'fetch_nama_dokter.php',
                method: 'POST',
                data: {selectedJamMulai: selectedJamMulai},
                success: function (data) {
                    $('#nama_dokter').html(data);
                }
            });
        });
    });
</script>

fetch_name_dokter.php

<?php

    if (isset($_POST['selectedJamMulai'])) {
        $selectedJamMulai = $_POST['selectedJamMulai'];
        $query = mysqli_query($koneksi, "SELECT DISTINCT dokter_id, nama_dkt FROM jadwal_praktek 
                                         LEFT JOIN dokter ON jadwal_praktek.dokter_id = dokter.id 
                                         WHERE jam_mulai = '$selectedJamMulai' AND status='Aktif'");
        while ($data = mysqli_fetch_array($query)) {
            echo '<option value="' . $data['id_jadwal'] . '">' . $data['nama_dkt'] . '</option>';
        }
    }
    ?>
© www.soinside.com 2019 - 2024. All rights reserved.