codeigniter load more

Permisi gan, ane buat fitur load more pake jquery ajax dengan code seperti ini

 <script>
$(document).ready(function(){
    $('.btn').on('click',function(e){
      e.preventDefault(); // prevent reload page
      var page = $(this).data('val'); // set var page
      berita(page); // run function page
      $("#load_more").hide(); //hide button
    });
});

var url = 'http://localhost/codeigniter/'
var berita = function (page){
  $("#load_more").show();
  $.ajax({
    url: url+"Praktek/get_berita",
    type:'GET',
    data: {page:page}
  }).done(function(data){
    $(".bungkus").append(data);
    $("#load_more").data('val',($('#load_more').data('val')+1));
    $("#load_more").show();
    if(data==""){
      $("#load_more").hide();
    }
  });
};

</script>

jika controllernya seperti ini, button akan hilang jika sudah tidak ada data yg di load

 function get_berita(){
		$page	=	$_GET['page'];
		$berita	=	$this->Model_artikel->show_more($page);
		foreach ($berita as $hasil) {
			echo'<div class="wrap_body">
				<div class="judul_body">
					<a href="'.base_url().'read/'.$hasil['id_artikel'].'"> '.$hasil['judul_artikel'].'</a>
				</div>
			</div>
			';
		}
	}

jika pakai controller yg ini,button akan tetap muncul walau tdk ada data yg di load

 function get_berita(){
		$page		=	$_GET['page'];
		$data['berita']	=	$this->Model_artikel->show_more($page);
		$this->load->view('home/ajax',$data);
}

view

 			<?php foreach ($berita as $ajax) : ?>
	  				<div class="wrap_body">
	  					<div class="gbr_body">
	  						<a href="<?php echo base_url(); ?>read/<?php echo $ajax['id_artikel']; ?>"><img class="img-responsive" src="<?php echo base_url(); ?>assets/uploads/<?php echo $ajax['nama_gambar']?> " width="220" height="50"></a>
	  					</div>
			  			<div class="judul_body">
			  				<a href="<?php echo base_url(); ?>read/<?php echo $ajax['id_artikel']; ?>"> <?php echo $ajax['judul_artikel']; ?></a>
			  			</div>
			  			<div class="isi_body">
			  				<?php echo ''.str_replace(array('<p>','</p>'),array(' ',' '),substr($ajax['isi_artikel'],0,100)).'.....'; ?>
			  			</div>
			  			<div class="tes_body">
			  				<?php  echo date('d-m-Y',strtotime($ajax['tanggal_artikel'])); ?>
			  			</div>
	  				</div>
	  		<?php endforeach; ?>

mohon dijelaskan kenapa bisa terjadi seperti itu. terima kasih

avatar farhanamandaa
@farhanamandaa

2 Kontribusi 0 Poin

Diperbarui 6 tahun yang lalu

1 Jawaban:

Jawaban Terpilih

coba cek dibagian ini gan:


 $("#load_more").show();
    if(data==""){
      $("#load_more").hide();
    }

diubah seperti ini:


    if(data==""){
      $("#load_more").hide();
    } else {
 $("#load_more").show();
}

Jika belum, coba cek apakah saat if (data == "") sudah benar datanya kosong? coba cek log nya Jika masih belum, coba cek apakah masuk kedalam function tersebut? coba jg log nya

avatar keccikun
@keccikun

364 Kontribusi 196 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban