KKUT Docs

Ajax İşleme

KUT Framework'te istek yapılan URL'ler bir kontrolcü yöntemini çalıştırdığı için Ajax isteği sonucu çalıştırılacak kodlar da kontrolcü yöntemine yazılmalıdır. Aşağıda Jquery ile örnek ajax k…

This article is currently available in Turkish. Its English translation is being prepared.

KUT Framework'te istek yapılan URL'ler bir kontrolcü yöntemini çalıştırdığı için Ajax isteği sonucu çalıştırılacak kodlar da kontrolcü yöntemine yazılmalıdır. Aşağıda Jquery ile örnek ajax kullanımı gösterilmiştir.

Bölüm Başlıkları

# Görünümün Hazırlanması
# Kontrolcünün Hazırlanması
# Ajax Sınıfı

# Görünümün Hazırlanması

Aşağıda ajax kodunun yer aldığı örnek görünüm sayfası içeriğine yer verilmiştir.

Dosya: Views/Home/exampleAjaxProcess.wizard.php
[|script|]
$.ajax
({
    url     : "{|URL::site('Home/exampleAjaxProcess')|}",
    type    : "post",
    data    : {"name":"Ajax Process", "value":"Example Data"},
    dataType: "json",
    success : function(data)
    {
        alert(data.name);
        alert(data.value);
    }
});
[|/script|]

Yukarıda wizard sayfası kullanıldığı için php etiketleri yerine küme parantezleri kullanılmıştır.

# Kontrolcünün Hazırlanması

Aşağıda örnek amaçlı gösterilen ajax isteğinin yapıldığı kontrolcü yönteminin içeriğine yer verilmiştir.

Dosya: Controllers/Home.php
 namespace Project\Controllers;

use Http, Post;

class Home
{
    public function exampleAjaxProcess() : void
    {
        # Your codes...

        echo json_encode(Post::all()); # Return Values
    }
}

Eğer bir ajax içeriğiniz PHP kodlarından daha çok HTML kodları içerecekse içeriğin bir görünüme oluşturulup kontrolcü yöntemi içerisine Import:: kütüphanesi ile dahil edilebilir.

 namespace Project\Controllers;

use Http, Post, Import;

class Home
{
    public function exampleAjaxProcess() : void
    {
        Import::view('Home/myAjaxContent');
    }
}
Dikkat: Yöntemlere uygulanan void tür dayatması ajax kontrolü sağlar. Bunun için ekstra kontrol gerekmez.

# Ajax Sınıfı

Jquery'nin ajax söz dizimini KUT'nin Ajax:: kütüphanesi ile yapabilmeniz de mümkündür. Ajax:: sınıfı Jquery'nin tüm yöntemlerini kullanabilir. Aşağıda jquery parametrelerinin PHP karşılıklarının listesi verilmiştir.

JQuery PHP
PlainObject {'example':'data'} array ['example' => 'Data']
Function function(p1, p2){ ...codes } callable ({< ..codes >}, 'p1, p2')
bool true bool true
Numeric 5 Numeric 5
string post string 'post'

Kullanımlar

[|script|]
@Ajax::url('Home/test')
     ->type('post')
     ->data({[| $('#form').serialize() |]})
     ->success
     ({[|
        alert(data);
     |]})
     ->done({[| alert(5); |]})
[|/script|]
Script Etiketleri

Script etiketlerinin Ajax:: sınıfı tarafından açılmasını isterseniz aşağıdaki gibi kullanın.

@Ajax::tag(true)
     ->url('Home/test')
     ->type('post')
     ->dataType('json')
     ->data(['example' => 'Example Data'])
     ->success
     ({[|
        alert(data);
     |]})
     ->done({[| alert(5); |]})
Wizard Kullanımı

Ajax:: kütüphanesinin aynı zamanda wizard karşılığıda mevcuttur.

Ajax::url(string $uri) @ajax(string $uri)
@ajax('Home/test')->tag(true)
     ->data(['example' => 'Example Data'])
     ->success
     ({[|
        alert(data);
     |]})
KUT Framework 1.0Katmanlı Uygulama Tabanı

Kur. Uyarla. Türet.