PHP işlevi şeyler dönmek ve aynı anda bir jQuery eylemi tetiklemek için en iyi yolu nedir?

0 Cevap php

Yani başlık belirsiz biraz, ama ben denemek ve bir örnek vereceğim. Temelde, benim PHP / CodeIgniter sitesinde (stackoverflow en rozetleri benzer) bir 'ödül' sistemi var, ve ben en kısa sürede bir ödül, kullanıcıya görünen bir bildirim kazanılır gibi, istiyorum.

Şimdi bu bir sonraki sayfa yük görünmesi için mutluyum, ama, ideal ben sitemde çoğunlukla AJAX destekli olduğu için ödül transactioned olduğu gibi kısa sürede görünmesini istiyorum ve çok sık sayfayı yeniden olmayabilir.

Sistem şu anda çalışır yoludur:

Kullanıcı bir ödül kazanç tetiklemek için bir şey yaparsa 1), CodeIgniter yapar:

$params['user_id'] = $this->tank_auth->get_user_id();
$params['award_id'] = 1; // (I have a database table with different awards in)
$this->awards->award($params);

2) Benim özel kütüphane, $this->awards, award fonksiyonunu çalıştırır:

function award($params)
{
    $sql = $this->ci->db->query("INSERT INTO  users_awards (user_id, award_id)
                                 VALUES ('".$params['user_id']."','".$params['award_id']."')
                                 ON DUPLICATE KEY UPDATE duplicate=duplicate+1");

    $awardinfo = $this->ci->db->query("SELECT * FROM awards WHERE id = ".$params['award_id']);

    // If it's the 'first time' the user has gotten the award (e.g. they've earnt it)
    if ($awardinfo->row('duplicate') == 0) {
        $params['title']       = $awardinfo->row('title');
        $params['description'] = $awardinfo->row('description');
        $params['iconpath']    = $awardinfo->row('iconpath');
        $params['percentage']  = $awardinfo->row('percentage');

        return $params;
    }
}

Yani, ödül kullanıcı (ve onlar iki kez earnt ettik eğer, tek bir gereksiz yinelenen alanını günceller), o zaman denetler onlar earnt ettik ilk defa (yani ödül onları uyarabilirsiniz) eğer. Eğer öyleyse, bu değişkenleri (ödülü başlığı, ödül açıklama, ödül için görüntülemek için bir simge yolu, ve nihayet de bu ödülü var kullanıcıların yüzdesi) alır ve bir dizi olarak döndürür.

Yani ... o kadar. Şimdi ben bilmek istiyorum, bu ne yapmak için en iyi yolu nedir? Şu anda benim Ödülü veren n ... bir kontrolör aradı, ama ben bu Ajax ile tetiklemek istiyorsanız, o kod bir görünüm dosyasına konulmalıdır tahmin edilir?

To sum it up: Ben bir sayfa yenileme olmadan görünmesini döndü ödül veri gerekir. Bunu yapmanın en iyi yolu nedir? (Zaten benim sayfada jQuery kullanıyorum).

Çok teşekkürler herkese!

Kriko

0 Cevap