Warm tip: This article is reproduced from serverfault.com, please click

Codeigniter displays the auto field of the selected id

发布于 2020-11-29 11:05:49

I am using the dropdown to display the fields based on the selected id using ajax onchange.

The fields I want to display are the kode_deskripsi and time_in.

This is my view

            <div class="form-group">
                <div class="flex flex-col sm:flex-row items-center mt-3">
                    <label class="sm:w-40 sm:mr-5">Kode Penitipan</label>
                    <select name="kode_penitipan" id="kode_penitipan" class="input w-full border mt-2 flex-1" onchange="getdata(this)">
                        <option>--Pilih Kode Penitipan--</option>
                        <?php foreach ($getKodePenitipan as $key): ?>
                            <option value="<?= $key->kode_penitipan ?>"><?= $key->kode_penitipan ?></option>
                        <?php endforeach ?>
                    </select>
                </div>
            </div>
            <div class="form-group">
                <div class="flex flex-col sm:flex-row items-center mt-3">
                    <label class="sm:w-40 sm:mr-5">Kode Deskripsi</label>
                    <input type="text" name="kode_deskripsi" id="kode_deskripsi" class="input w-full border mt-2 flex-1" readonly>
                </div>
            </div>
            <div class="form-group">
                <div class="flex flex-col sm:flex-row items-center mt-3">
                    <label class="sm:w-40 sm:mr-5">Waktu Masuk</label>
                    <input type="text" name="time_in" id="time_in" class="input w-full border mt-2 flex-1" readonly>
                </div>
            </div>

and this is the javascript that I made in the view file

<script type="text/javascript">
function getdata(kode_penitipan) {
    var kode_penitipan = $("#kode_penitipan").val();
    $.ajax({
        url: '<?php echo site_url('transaksi/getPenitip') ?>',
        data: "kode_penitipan="+kode_penitipan,
        success: function (data){
            // $('#kode_deskripsi').val(data.kode_deskripsi);
            // $('#time_in').val(data.time_in);
            console.log(data);
        }
    });
}
Then this is my controller
public function getPenitip()
{
    $kode_penitipan = $this->input->post('kode_penitipan');
    // $query = $this->db->query('penitipan')->where('kode_penitipan', $kode_penitipan);
    $data = $this->M_Transaksi->getAutocomplete($kode_penitipan);
    echo json_encode($data);
}

and this my model

public function getAutocomplete($kode_penitipan)
{
    $this->db->where('kode_penitipan', $kode_penitipan);
    $this->db->where('status', '1');
    $query = $this->db->get('penitipan');
    if ($query->num_rows()>0) {
        foreach ($query as $key) {
            $data = array(
                'kode_deskripsi' => $key->kode_deskripsi,
                'time_in' => $key->time_in,
            );
        }
        return $data;
    }
}

My problem is that the field I want to display doesn't appear, I try to use console.log (data) and it turns out to be null. Is there something wrong with my code? Help me ..

Sorry if my English is not perfect, hopefully the points I convey can be understood

Questioner
wahyurmd
Viewed
0
KUMAR 2020-11-30 22:34:26

Your jQuery / Ajax Code is Below:-

$("#kode_penitipan").change(function(){
  var kode_deskripsi = $(this).val();
  var time_in = $(this).val();
  
  $("#kode_deskripsi").val(kode_deskripsi);
  $("#time_in").val(time_in);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<label>--Pilih Kode Penitipan--</label>
<select name="kode_penitipan" id="kode_penitipan">
<option value="0">Select Option Value</option>
<option value="Penitipan1">Penitipan1</option>
<option value="Penitipan2">Penitipan1</option>
</select>
<br>
<input type="text" name="kode_deskripsi" id="kode_deskripsi">


<input type="text" name="time_in" id="time_in">