tidak bisa tampil data jquery - laravel

bang saya mau menampilkan data kabupaten di form hasil yaitu ketika di klik instansi muncul instansi yg dipilih masuk dalam kabupaten mana, untuk instansi itu sendiri terdapat field : id, nama instansi, province_id, regency_id, telepon. Sedangkan regency terdiri dari field : id, province_id, name , kemudian untuk table result terdiri dari : id, instance_id, hasil, catatan. untuk tampilanya form result seperti ini , bagian view seperti ini :

  <div class="form-group row {{ $errors->has('instansi') ? 'was-validated' :'' }}">
              {!! Form::label('instansi', 'Instansi',['class'=>'col-sm-4 com-form-label']) !!}
              <div class="col-sm-6">
                 {!! Form::select('instance_id', ['' => '-Pilih-']+$instance->toArray(), null, ['class' => 'form-control', 'id' => 'instance']) !!}
                @if ($errors->has('instance_id'))
                <span class="help-block">{{ $errors->first('instanse_id') }}</span>
                @endif
              </div>
            </div>
            <div class="form-group row {{ $errors->has('regency_id') ? 'was-validated' :'' }}">
              {!! Form::label('regency_id', 'Kabupaten',['class'=>'col-sm-4 com-form-label']) !!}
              <div class="col-sm-6">
                {!! Form::text('kabupaten',null,['class'=>'form-control','placeholder'=>' ','id'=>'regency']) !!}

                @if ($errors->has('regency_id'))
                <span class="help-block">{{ $errors->first('regency_id') }}</span>
                @endif
              </div>
            </div>

@section('script')
<script>


      $('#tanggalberangkat').datetimepicker({
    format: 'yyyy-mm-dd hh:ii:ss'
    });
     $('#tanggalpulang').datetimepicker({
      format:'yyyy-mm-dd hh:ii:ss'
     });

    // set kabupaten
    var url = {
         regency : "{{ url('admin/regency') }}",

    };

    $('#instance').on('change', function () {
        getRegency($(this).val());
    });

    function getRegency(instance_id) {
        $.get(url.regency+"/"+ instance_id, function (data) {
            $("#regency").html(data);
        });
    }

</script>

untuk route seperti ini

 	Route::get('regency/{instance}','InstanceController@regency');

, untuk instance controller seperti ini :

  public function regency($regency)
    {
        // $items = Regency::where('name', $instance)->orderBy('id')->pluck('name', 'id');
        // $items = Regency::where('instance_id', $instance)->orderBy('id')->pluck('name', 'id');
        $items = Instance::with('regency')
                        ->where('regency_id', $regency)->orderBy('id')->pluck('nama', 'id');
        dd($items); die();

        $list = '';
        foreach ($items as $key => $value) {
            $list .= "<option value='" . $key . "'>" . $value . "</option>";
        }
        // dd($items); die();

        return $list;

    }

untuk function regency pada resultController seperti berikut :

public function regency(Request $request, $instance)
    {
        $items = Regency::where('name', $instance)->orderBy('id')->pluck('name', 'id');
        // $items = Regency::where('regency_id', $instance)->orderBy('id')->pluck('regency_id', 'id');

        dd($items); die();
        $list = '';
        foreach ($items as $key => $value) {
            $list .= "<option value='" . $key . "'>" . $value . "</option>";
        }

        return $list;

    }

lalu ketika di run tidak muncul nama kabupatennya seperti tampilan gambar diatas, jika dibuka yang url regency data masih kosong , untuk model instansi seperti ini :

 <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Instance extends Model
{
	protected $guarded = [];
  public $timestamps = false;

  public function result()
  {
  	return $this->hasMany('App\Result');
  }
   public function regency()
    {
        return $this->belongsTo('App\Regency','regency_id');
        // return $this->belongsTo('App\Regency','id');
    }
}

, untuk regency modelnya seperti ini :

 <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Regency extends Model
{
	protected $guarded = [];
  	public $timestamps = false;

  public function instance()
  {
  	return $this->hasMany('App\Instance');
  }

}

mohon pencerahannya bang ?

avatar yenimulya
@yenimulya

50 Kontribusi 2 Poin

Diperbarui 5 tahun yang lalu

Tanggapan

coba perlihatkan, struktur database Instance seperti apa, regency seperti apa

Yang $instance->toArray() ini pluck id dan nama nya instance bukan? Tapi yang dicari kok regency_id.

ada kesalahan dalam pertanyaan bang, sudah saya benahi sekarang bang @hilmanrdn dan @devio . gmna ya bang

1 Jawaban:

Saya tidak begitu mengerti relationnya seperti apa, tapi dari kode ini <pre> $items = Regency::where('name', $instance)-&gt;orderBy('id')-&gt;pluck('name', 'id'); dd($items); die(); </pre>

kalau itemsnya kosong, coba dengan ambil semuanya, apakah ada data atau tidak

<pre> $items = Regency::where('name', $instance)-&gt;get(); //orderby id tidak perlu sudah otomatis dd($items); die(); </pre>

kalau masih kosong, berarti di table Regency kamu nama $instance ini memang belum ada

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 5 tahun yang lalu

Tanggapan

masih kosong bang, jadi tabel result itu berhubungan dengan table instansi, sedangkan table instansi sendiri di dalamnya terdapat field regency_id bang, begitu bang @hilmanrdn

lalu saya hanya ingin menampilkan di form input yang akan disimpan di result itu ketika saya klik nama instansi maka muncul instasi yang dipilih masuk dalam kabupaten mana, seperti itu bang

iyap, masalahnya berarti di database kamu masih salah, harusnya kalau melakukan yang diatas sudah keluar.

begitu ya kak , di table instansinya berarti yang salah ya

iyap kurang jelas dimana saya tidak tahu. Tapi kalau mengeluarkan data biasa tidak keluar(tanpa berhubungan dengan relation) berarti ada yang salah dasarnya

tetapi saya pernah menampilkan data demikian dengan menggunakan cakephp bisa bang dengan struktur db yang sama, akan tetapi ini setelah pakai laravel jadi gagal, berarti memang databasenya yang perlu dibenahi ya bang?

iyap betul

Login untuk ikut Jawaban