为了账号安全,请及时绑定邮箱和手机立即绑定

显示从 ajax 和 codeigniter 循环选择复选框

显示从 ajax 和 codeigniter 循环选择复选框

PHP
互换的青春 2023-08-06 10:35:11
我想显示从数据库循环的复选框,如果我尝试在字段中选择数据 id_kendaraan,然后显示该 id 中的数据。这是我的视图代码:<div class="modal fade" id="tambah" tabindex="-1" role="dialog" aria-labelledby="largeModal" aria-hidden="true">            <div class="modal-dialog">            <div class="modal-content">            <div class="modal-header">                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>                <h3 class="modal-title" id="myModalLabel">Tambah Pemeliharaan</h3>            </div>            <form class="form-horizontal" method="post" action="<?php echo base_url()?>Data/Pemeliharaan/Tambah">                <div class="modal-body">                    <div class="form-group">                    <label class="control-label col-xs-3">Nama Kendaraan</label>                        <div class="col-xs-8">                            <select class="form-control"  name="id_kendaraan" id="id_kendaraan" required>                            <option>Pilih Kendaraan</option>                            <?php                            if(!empty($kendaraan_)) {                            foreach ($kendaraan_ as $isi) {                            ?>                            <option value="<?php echo $isi['id_kendaraan']?>"><?php echo $isi['nama']?> - <?php echo $isi['platno']?></option>                            <?php }} ?>                            </select>                        </div>                    </div>                    <?php                    $index =0;                              foreach ($subkriteria_ as $kr_key => $kriteria) {                    ?>在此代码中,如果我从选择表单中选择一个 kendaraan,则数据将根据所选的 kendaraan 出现。它正在工作,但在复选框上不显示用于从数据库循环的数据备件。
查看完整描述

2 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

您应该将模型上的查询分开,因为它具有不同的显示格式(我假设您想获取一个kendaraan包含多个sparepart数据的数据):


function GetById($id_kendaraan){

    $this->db->select('*');

    $this->db->from('tb_kendaraan');

    $this->db->where('tb_kendaraan.id_kendaraan',$id_kendaraan);

    $query_kendaraan = $this->db->get();

    

    $hasil = false;

    if($query_kendaraan->num_rows() > 0)

    {

        $data_kendaraan = $query_kendaraan->row();

        $hasil = [

            'tahun_beli' => $data_kendaraan->tahun_beli,

            'id_jenis' => $data_kendaraan->id_jenis,

            'spareparts' => [] // empty array, to be filled with spareparts data

        ];

        $this->db->select('*');

        $this->db->from('tb_sparepart');

        $this->db->where('tb_sparepart.id_jenis', $data_kendaraan->id_jenis);

        $query_sparepart = $this->db->get();

        

        foreach ($query_sparepart->result() as $data_sparepart) {

            $spareparts = [

                'id_sparepart' => $data_sparepart->id_sparepart,

                'sparepart' => $data_sparepart->sparepart,

            ];

            array_push($hasil['spareparts'], $spareparts);

        }

    }

    return $hasil;

}

然后在html方面,尝试修改如下代码:


<div class="modal fade" id="tambah" tabindex="-1" role="dialog" aria-labelledby="largeModal" aria-hidden="true">

    <div class="modal-dialog">

        <div class="modal-content">

            <div class="modal-header">

                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>

                <h3 class="modal-title" id="myModalLabel">Tambah Pemeliharaan</h3>

            </div>

            <form class="form-horizontal" method="post" action="<?php echo base_url()?>Data/Pemeliharaan/Tambah">

                <div class="modal-body">

                    <div class="form-group">

                    <label class="control-label col-xs-3">Nama Kendaraan</label>

                        <div class="col-xs-8">

                            <select class="form-control"  name="id_kendaraan" id="id_kendaraan" required>

                            <option>Pilih Kendaraan</option>

                            <?php

                            if(!empty($kendaraan_)) {

                            foreach ($kendaraan_ as $isi) {

                            ?>

                            <option value="<?php echo $isi['id_kendaraan']?>"><?php echo $isi['nama']?> - <?php echo $isi['platno']?></option>

                            <?php }} ?>

                            </select>

                        </div>

                    </div>

                    <?php

                    $index =0;          

                    foreach ($subkriteria_ as $kr_key => $kriteria) {

                    ?>

                    <div class="form-group">

                        <label class="control-label col-xs-3"><?php echo $kriteria['nama_kriteria'] ?></label> 

                        <div class="col-xs-8">

                                <input type="hidden" name="status_pemeliharaan" value="1" class="form-control">

                                <input type="hidden" name="id_kriteria[]" value="<?php echo $kriteria['id_kriteria'] ?>" class="form-control">  

                            <?php if(!empty($kriteria['sub'])) { ?> 

                            <select class="form-control"  name="isi_kriteria[]" required>

                                <option>Pilih Sub Kriteria</option>

                                <?php $no = 1; foreach ($kriteria['sub'] as $data)     { ?>

                                <option value="<?php echo $data['value'] ?>"><?php echo $data['namasubkriteria'] ?> - <?php echo $data['value'] ?></option>

                                <?php  $no++; } ?>

                            </select>

                            <?php } else if($kriteria['link']=='tahun_beli') { ?>

                                <input name="isi_kriteria[]" value="" class="form-control" type="text" placeholder="Isi Kriteria..." readonly required>

                            <?php } else { ?>

                                <input name="isi_kriteria[]" value="" class="form-control" type="number" placeholder="Isi Kriteria..." required>

                            <?php } ?>

                        </div>

                    </div>

                    <?php } ?>

                    <div class="form-group">

                        <label class="control-label col-xs-3">tes</label>

                        <div class="col-xs-8">

                            <ul id="sparepartList" style="list-style-type: none; padding: 0;"></ul>

                        </div>

                    </div>

                </div> 

                <div class="modal-footer">

                    <button class="btn" data-dismiss="modal" aria-hidden="true">Tutup</button>

                    <button class="btn btn-info">Submit</button>

                </div>

            </form>

        </div>

    </div>

</div>



<script type="text/javascript">

    $(document).ready(function(){

        $('#id_kendaraan').on('input',function(){

            

            var id_kendaraan=$(this).val();

            $.ajax({

                type : "POST",

                url  : "<?php echo base_url('Data/Pemeliharaan/GetKendaraanById')?>",

                dataType : "JSON",

                data : {id_kendaraan: id_kendaraan},

                cache:false,

                success: function(data){

                    $('#sparepartList').empty(); // clear all sparepart checkboxes

                    $.each(data, function(id_kendaraan, tahun_beli, jenis){

                        $('[name="isi_kriteria[]"]').val(data.tahun_beli);

                        $('[name="id_jenis"]').val(data.id_jenis);

                    });

                    $.each(data.spareparts, function (key, value) {

                        let li = $('<li><input type="checkbox" name="id_sparepart[]" value="' + value.id_sparepart + '" />' +

                                '<input type="text" name="sparepart" value="' + value.sparepart + '" /></li>');

                        $('#sparepartList').append(li);

                    });

                        

                }

            });

            return false;

        });

    });

</script>

请注意,我将spareparthtml 输入更改为无序列表元素,然后循环sparepart从其中的 ajax 响应检索到的数据。


查看完整回答
反对 回复 2023-08-06
?
慕仙森

TA贡献1827条经验 获得超7个赞

在你的模型中


    $hasil=array(

                'tahun_beli' => $data->tahun_beli,

                'id_jenis' => $data->id_jenis,

                'id_sparepart' => $data->id_sparepart,

                'sparepart' => $data->sparepart,

                );

你应该使用 [] 将数据存储在 $hasil 中


   $hasil[]=array(

                'tahun_beli' => $data->tahun_beli,

                'id_jenis' => $data->id_jenis,

                'id_sparepart' => $data->id_sparepart,

                'sparepart' => $data->sparepart,

                );


查看完整回答
反对 回复 2023-08-06
  • 2 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信