Как я могу передать уведомление только на стороне получателя, а не на обеих сторонах? - PullRequest
1 голос
/ 19 сентября 2019

Это мой код извлечения данных из database.

Model: -

public function fetch_data($v)
{  


                if($v != '')
                {
                    $this->db->set('chat_status', '0');
                    $this->db->where('chat_status','1');
                    $this->db->update('chat');
                }
                    $this->db->select("receiver_id");
                    $this->db->from("chat");
                    $this->db->where("chat_status", "1");
                    $this->db->order_by("id", "DESC");
                    $this->db->limit(1);
                    $result = $this->db->get();
                    $output = '';


        $this->db->select("receiver_id");
        $this->db->from("chat");
        $this->db->where("chat_status", "1");
        $this->db->order_by("id", "DESC");
        $this->db->limit(1);
        $result1 = $this->db->get();
        $count=$result1->num_rows();

        $data= array('unseen_notification'=>$count);
        return json_encode($data);

}

это мой контроллер

controller: -

public function index()
{ 
    $v=$this->input->post('view');
    echo $op= $this->Notify_Model->fetch_data($v);
    return $op;
}

, и это мой ajax и представление для вызова уведомления в представлении

Ajax: -

$(document).ready(function(){
  function load_unseen_notification(view = '')
  {

   $.ajax({
    url:"<?php echo base_url();?>Notify/index",
    method:"POST",
    data:{"view":view},
    dataType:"json",
    success:function(data)
    {
     $('.dropdown-menu').html(data.notification);
     $('.count').show();
     if(data.unseen_notification > 0)
     {    
      $('.count').html(data.unseen_notification);
     }  else if(data.unseen_notification == ''){
         $('.count').hide();
     }
    }
   });
  }
  load_unseen_notification();
  $(document).on('click', '.dropdown-toggle', function(){
   $('.count').html('');
   load_unseen_notification('yes');
  });
  setInterval(function(){
   load_unseen_notification();
  }, 1000);
  });

и это мой взгляд, когда я назвал количество уведомлений:

view: -

<li class="treeview">
          <a href="<?php echo base_url('chat'); ?>" class="dropdown-toggle sample">
            <i class="fa fa-users"></i>
            <span>Chat</span>
            <span class="label label-pill count" style="border-radius:10px;"></span>
          </a>
        </li>

теперь я просто хочучтобы увидеть уведомление на стороне получателя, но в этом уведомлении отображается на обоих.Как я могу изменить код для реализации этой ситуации.Пожалуйста, помогите.

1 Ответ

1 голос
/ 20 сентября 2019

Вам просто нужно изменить представление вашей модели, потому что вы передаете оба параметра receive_id, вы должны также передать sender_id и receive_id.

изменить на это: -

public function fetch_data($v)
{  


                if($v != '')
                {
                    $this->db->set('chat_status', '0');
                    $this->db->where("receiver_id", $this->session->userdata('id'));
                    $this->db->update('chat');
                }
                    $receiver_id = $this->session->userdata('sender_id');
                    $this->db->select();
                    $this->db->from("chat");
                    $this->db->where("sender_id", $receiver_id);
                    $this->db->where("chat_status", "1");
                    $this->db->order_by("id", "DESC");
                    $this->db->limit(1);
                    $result = $this->db->get();
                    $output = '';

        $this->db->select();
        $this->db->from("chat");
        $this->db->where("receiver_id", $receiver_id);
        $this->db->where("chat_status", "1");
        $this->db->order_by("id", "DESC");
        $this->db->limit(1);
        $result1 = $this->db->get();
        $count=$result1->num_rows();
        $data= array('unseen_notification'=>$count);
        return json_encode($data);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...