Monday, 20 January 2020

lazy loader in Codeigniter

View : 

<section class="cardlist" id="results">
            <div id="load_data"></div>
            <div id="load_data_message"></div>
</section>


<script>
  $(document).ready(function(){

    var limit = 4;
    var start = 0;
    var action = 'inactive';

    function lazzy_loader(limit)
    {
      var output = '';
      for(var count=0; count<limit; count++)
      {
        output += '<center> <div class="loading-info"><img src="<?php echo base_url().'assets/front/'?>images/loading.gif" /></div></center>';

      }
      $('#load_data_message').html(output);
    }

    lazzy_loader(limit);

    function load_data(limit, start)
    {

      $.ajax({
        url:"<?php echo base_url(); ?>Web/cardFetch",
        method:"GET",
        data:{limit:limit, start:start},
        cache: false,
        success:function(data)
        {
          if(data == '')
          {
            $('#load_data_message').html('<center><h5 style="color: green;"> No More Card Available </h5></center>');
            action = 'active';
          }
          else
          {
            $('#load_data').append(data);
            $('#load_data_message').html("<center><h4 style='color: red;'> No More Card Available </h4></center>");
            action = 'inactive';
          }
        }
      })
    }

    if(action == 'inactive')
    {
      action = 'active';
      load_data(limit, start);
    }

    $(window).scroll(function(){
      if($(window).scrollTop() + $(window).height() > $("#load_data").height() && action == 'inactive')
      {
        lazzy_loader(limit);
        action = 'active';
        start = start + limit;
        setTimeout(function(){
          load_data(limit, start);
        }, 1000);
      }
    });

  });
</script>


Controller : 





public function cardlist()
{
if($this->uri->segment('3')!=''){
$this->session->set_userdata('src_category', $this->uri->segment('3'));
}

if($this->input->post('src_text')!=''){
$this->session->set_userdata('src_text', $this->input->post('src_text'));
}else{
$this->session->set_userdata('src_text','');
}


$data=array();
$data['CardList']=$this->Web_model->getCardList();
$data['CategoryName']=$this->Web_model->getCategoryName();
$data['LocationName']=$this->Web_model->getLocationName();
$data['ads_list_top_ads']=$this->Web_model->getadsData('list_top_ads');
$data['ads_list_footer_ads']=$this->Web_model->getadsData('list_footer_ads');
$this->load->view('front/card_list',$data);
}

function cardFetch()
{
$output = '';
$this->load->model('Web_model');
$data = $this->Web_model->fetch_data($this->input->get('limit'), $this->input->get('start'));
if($data->num_rows() > 0)
{
$bg=1;
            $i=1;
foreach($data->result() as $val)
{
if($val->verified=='1'){  $verifiedPhoto = '<img src="'.base_url('assets/front/icon/verified.png').'"  class="verified" />'; }else{ $verifiedPhoto=''; }


                if($val->path1!=''){
                   $ownerPhoto ='<img src="'.base_url('upload/card/').''.$val->path1.'" class="owner" />';
                      }else{
                  $ownerPhoto ='<img src="'.base_url('assets/front/icon/logoshort.jpg').' " class="owner" />';
                 }



$output .= '
<span class="cardlistitem bg'.$bg++.'">
           
    '.$verifiedPhoto.'         
    <a href="'.base_url('web/detail/').''.$val->id.''.$this->uri->segment('3').'">
       
        <table>
            <tr>
                <td width="25%">
                   '.$ownerPhoto.'
                </td>
                <td width="75%">
        <table style="margin: 5px;">
            <tr><th><span class="t1">'.ucwords( $val->business ).'</span> </th></tr>
            <tr><th><span class="t2"><img src="'.base_url('/assets/front/icon/user.png').'" class="sicon" />'.ucwords( $val->name ).'</span> </th></tr>
            <tr><th><span class="t2"><img src="'.base_url('/assets/front/icon/mobile.png').'" class="sicon" />'.$val->mobile.'</span> </th></tr>     
            <tr><th><span class="t2"><img src="'.base_url('/assets/front/icon/s.png').'" class="sicon" style="background-color: #fff; " />'.substr($val->service,0,26).'</span> </th></tr>   
        </table>
            </td>
            </tr>

            <tr><td colspan="2"><span class="t4">'.ucfirst( $val->address ).'</span></td></tr>
        </table>


    </a>
</span>';



}
}
echo $output;
}




Models : 




function fetch_data($limit, $start)
{

            $src_location = $this->session->userdata('src_location');
            $src_category = $this->session->userdata('src_category');


     
    $src_text = $this->db->escape_str($this->session->userdata('src_text'));

$this->db->select("*");
$this->db->from("card");
if($src_text==''){
    $this->db->where(" category='".$src_category."' && location='".$src_location."' &&  isactive='1' ");              
}else{
      $this->db->where(" category='".$src_category."' && location='".$src_location."' && isactive='1'  && ( business LIKE '%".$src_text."%'  ||  name LIKE '%".$src_text."%' || address LIKE '%".$src_text."%' || mobile LIKE '%".$src_text."%' || service LIKE '%".$src_text."%') ");                      
}

$this->db->order_by("plan", "DESC");
$this->db->limit($limit, $start);
$query = $this->db->get();
return $query;
}





No comments: