Codeigniter JQuery Ajax

2 Cevap php

I'm a heavy Codeignitor user and currently I have to build a page with extensive AJAX bits and pieces. I have been using JQuery all along the website and it's AJAX handling was perfect up until now. There is something that just doesn't feel right when i use a MVC with JQuery. For example: in Jquery I setup the callback URL easily that point to the controller, the controler then calls a view page and the AJAX is displayed but this view page is very small PHP code. So now I have about 40 ajax function to do in my page, would that mean I would have to make 40 views?? that doesn't seem right to me. Is there any better way to handle/manage the views created for the AJAX in MVC Frameworks

Teşekkür ederim.

2 Cevap

Sen mesela, bir görünüm oluşturabilirsiniz ajax.php ve kontrol yöntemlerinde göre içeriği ayarlanır. Tüm yöntemler aynı görünümünü kullanabilirsiniz.

Yukarıdaki benzer görünümler için de geçerlidir, ama yöntemleri de benzer ise, o zaman bakın my answer to a question on how to get parameters from the url, uri parametreleri kullanarak kodunuzu üstlenmeden düşünmek gerekir.

Ama tüm bu kontrolörler, kendi yöntemleri ve ilgili görüşlerin doğasına bağlıdır.

EDIT:

Ben denetleyicisi HTML kullanmanızı tavsiye ederiz, ama bu gibi kontrolör dışarı bırakmıyorsun:

Class My_Controller
{
    // some other methods
    public function edit_via_ajax($type, $value)
    {
        /* do some stuff with $type and $value,
           sanitize user input etc. 
           set $status to TRUE or FALSE */
        $data['type'] = $type;
        $data['value'] = $value;
        if ($status === TRUE)
        {        
            $this->load->view('success.php', $data);
        }
        else
        {        
            $this->load->view('error.php', $data);
        }
    }
}

Success.php gibi görünümler oluşturma

<?=$type;?> was successfully set to <?=$value;?>

Ve adını düzenlemek için jquery $.get('/index.php/my_controller/edit_via_ajax/name/John_Doe'); aracılığıyla diyoruz. Bu şekilde, benzer AJAX istekleri çok aynı yöntemi paylaşabilir ve yöntemler görüşlerini paylaşabilirsiniz.

AJAX isteği CI bir görünümünü kullanmanız gerekir gereksinim yoktur. Sizin denetleyici yöntemleri, herhangi yankılandı verilerin sadece çeşit bir görünüm dönmek zorunda değilsiniz. Lütfen bazı görünümler çok küçük, ya da sadece HTML minimum miktar (eğer minimum olabilir ne karar verebilirsiniz) gerektiren iseniz, sadece aşağıdakilerden birini yapabilirsiniz:

public function controllerMethod1() {
    $str = '<strong>some html</strong><br />';
    $str .= '<p>and some more</p>';
    die($str);
}

Hala modelinde sonrası isteklerini işleme, her zamanki hakkında gitmek ve sadece veritabanı güncellemeleri başarılı ya da hatalı olup olmadığını belirlemek için dize tanımlayıcıları kullanabilirsiniz:

public function controllerMethod2() {
    if ($this->model->addToDatabase(...)) {
        die('success');
    }
    die('error');
}