Bir görünümde bir javascript işlevi bir model veritabanı sorgu çağırmak nasıl?

0 Cevap php

Benim kullanıcı ileti sistemine benim kullanıcı gelen kutusunda bir kullanıcı bir e-posta mesajı bir favori mesajı yapabilir bir özellik inşa ediyorum.

Benim mesajlar modelinde 2 yöntem oluşturduk. Bir kullanıcı mesaj bir favori olmak istiyor anlamına gelecektir 'Mesajların tabloda 0, 1' favori 'sütununu günceller. Ayrıca görüntü kullanıcının favori gri renge dönüşür mesajı yapmak için tıklar.

Bir kullanıcı mesajı bir favori yapmak istiyorsa Sonra tekrar aynı işlemi yapmak. 1 0 güncellenir ve görüntü tekrar silik döner.

Aşağıda kutusu (görüntü renktedir) kontrol ve kutu işaretli değilse başka bir şey (resim gri renkte) ise temelde bir şey yok benim jQuery / javascript.

// favourite check box
    $('input.favourite:checkbox').simpleImageCheck({
  image: '<?php echo base_url()?>images/messages/check.png',
  imageChecked: '<?php echo base_url()?>images/messages/unchecked.png',
  afterCheck: function(isChecked) {
    if (isChecked) {
  //query to db from php to update favourite number to 1
    }
    else (!isChecked)
        {
            //query to db from php to update favourite number to 0
        }
  }
});

Ne ben anlamaya çalışıyorum benim modeli benim 2 db sorguları denilen en iyi yoludur:

public function favourite_checked($message_id)
{
    $username = $this->session->userdata('username');
    return $this->db->query("UPDATE messages SET favourite = 1 WHERE id = $message_id AND to_user = '$username'");    
}

    public function favourite_unchecked($message_id)
{
    $username = $this->session->userdata('username');
    return $this->db->query("UPDATE messages SET favourite = 0 WHERE id = $message_id AND to_user = '$username'");    
}

Bu ne için en iyi yol olacağını? Kötü pratik bir görünümünde doğrudan bir modeli değil Calling?

Peki nasıl ben başarmak istiyorum ne elde edebiliriz?

Acaba bir orta adam gibi bir denetleyici hareket?

Eğer öyleyse nasıl ben bile bir javascript işlevi bir denetleyicisi çağırır?

Ben her zaman burada verilen tavsiye ederiz. Şimdiden teşekkürler

0 Cevap