Form Kütüphanesi


    × Bunları biliyor muydunuz?
"Şablon sihirbazında (Wizard) (5.5.60) sürümünden beri döngülerin sonunda kullanılan : sembolünün kullanım zorunluluğu kaldırılmıştır."


Form nesnelerini sınıf formuna getirerek gerek görünüm gerekse de kontrolcü içerisinde kullandırmayı amaçlar. Nesne zincirlemesi ile istenilen özellik değer çiftleri kolaylıkla eklenebilmektedir. Özellikle veritabanı ile doğrudan ilişkili çalışabilir olması standart form kullanımına göre büyük kolaylık ve avantaj sağlar. Ayrıca DB::, Validation:: ve Permission:: kütüphaneleri ile entegreli çalışır.

 

 

# Kurulum


ZN dağıtımları için kurulum gerekmez.

↓ composer require znframework/package-hypertext

 

 

# Yöntemler


Form::open(string $name = NULL, array $attr = []) : string
Form::close() : string
Form::text(string $name = NULL, string $value = NULL, array $attr = []) : string
Form::password(string $name = NULL, string $value = NULL, array $attr = []) : string
Form::textarea(string $name = NULL, string $value = NULL, array $attr = []) : string
Form::submit(string $name = NULL, string $value = NULL, array $attr = []) : string
Form::reset(string $name = NULL, string $value = NULL, array $attr = []) : string
Form::button(string $name = NULL, string $value = NULL, array $attr = []) : string
Form::radio(string $name = NULL, string $value = NULL, array $attr = []) : string
Form::checkbox(string $name = NULL, string $value = NULL, array $attr = []) : string
Form::select(string $name = NULL, array $options, string $selectedKey = NULL, array $attr = []) : string
Form::multiselect(string $name = NULL, array $options, string $selectedKey = NULL, array $attr = []) : string
Form::file(string $name = NULL, bool $multiupload = false, array $attr = []) : string
Form::__callHtml5(string $name = NULL, string $value = NULL, array $attr = []) : string
Form::__tostring() : string
Form::postback(bool $postback = true, string $type = 'post') : this
Form::validate(mixed ...$rules) : this
Form::vMethod(mixed ...$parameters) : string
Form::serializer(string $uri, mixed $callback, mixed $datatype = 'standart') : this
Form::trigger(string $event, string $uri, mixed $callback, mixed $datatype = 'standart') : this

 

 

# Özellikler


Tüm HTML özellikleri yöntem adı olarak kullanılarak eklenebilir.

Form::id('example')->style('red:color')-> - - -

Yukarıda kullanılan id(), style() gibi yöntemler input nesnesinin özellik değer çiftini oluşturan yapıları belirlemek için kullanılır. Bu kullanım tüm form nesneleri için ortaktır. Her Form:: nesnesi kendi parametreleri dışında bu opsiyonel yöntemler ile de parametre kullanımlarını sağlayabilir. Eğer özellik birden fazla kelime ve aralarında tire(-) içeren bir yapıda ise bu özellik yöntem olarak camelCase yani exampleElement() formunda kullanılır.

Parametreler

string $value = NULL Varsa özelliğin değeri.
return this  

Kullanımlar

@Form::required()->placeholder('Name Please')->id('name')->text('name')
Tire Ayraçlı Kullanımlar

Eğer form özellikleriniz data-validation gibi - ile ayrılan bir özellikse camelCase standartında yazmanız gerekir.

@Form::dataValidation('required')->myId(1)->text('name', 'Value')
<input type="text" data-validation="required" my-id="1" name="name" value="Value">
Dizge Olmayan Parametre Gönderimi [6.40.3.8]

Bu güncellemede aşağıdaki düzenlemeler yapılmıştır.

Html Entity

Gönderilen veriler artık htmlentities() ile dönüştürülüyor.

boolean Gönderim

Önceden değer olarak true veya false göndermek için bu değerleri string vermek gerekiyordu. Artık gerçek boolean gönderiminde otomatik olarak string dönüşüm sağlanıyor.

@Form::abc(true)->text() # <input type="text" abc="true">

array veya Object Gönderim

Önceden array veya Object gönderiminde veri scalar olmaması nedeni ile hata üretiyordu. Artık bu veriler JSON formatına dönüştürülerek eklenmekte. Ancak tırnaklar htmlentities() ile dönüştürülüyor. Dolayısı ile verinin daha sonra kullanılabilir olması için html_entity_decode() ile dönüştürülmesi gerekir.

@Form::abc(["a" => 1])->text() # <input type="text" abc="{quotbquot:1}">

 

 

# Open


Html <form> kullanımının karşılığıdır.

Parametreler

string $name Nesne ismi.
array $attr = [] Özellikler.
return string  

Kullanımı

@Form::action('home')->method('get')->open('example-form')
 
Opsiyonel Yöntemler
Form::enctype(string $type) : this
Form::csrf() : this
Form::where(string $column, scalar $value, string $logical = 'and') : this
Form::query(string $query) : this
Form::process(string $process) : this
Form::getUpdateRow() : object
Form::duplicateCheck(...$columns = '*') : this
Form::prevent() : this
# Enctype

Form nesnesinin enctype değerini ayarlamak için kullanılır. Özellikle dosya yükleme işlemlerinde bu değerin kullanılması gerekmektedir.

Parametreler

string $type

Tür.

multipart - application - text

return this

Kullanımı

@Form::enctype('multipart')->open('upload-form')
# CSRF

CSRF ataklarını engellemek için token datası oluşturur.

Parametreler

return this

Kullanımı

@Form::csrf()->open('form')
# Where

Form'a tablo kayıtını bağlamak için kullanılır. DB::where() kullanımı ile aynıdır. Bu yöntemle doğrudan istenilen tablonun istenilen koşula göre ilgili kayıtın bağlanmasını sağlayabilirsiniz. Tablo adı olarak form nesnesinin name değeri kullanılır.

Parametreler

string $column Kolon adı.
string $value Kolon değeri.
string $logical = 'and' and - or Bağlaç.
return this

Kullanımı

@Form::where('id', URI::get('id'))->open('accounts')
Form Nesneleri

Tablo tanımlamasından sonra diğer form nesneleri kayıttan gelen değeri otomatik alır. İstisna olarak checkbox, radio butonlar ve select nesnesinin kullanımı farklıdır.

Radio Buton

Radio butonların seçili olabilmesi için verilen değerin gelen kayıttaki değer ile eşleşmesi gerekmektedir.

Male  /: @Form::radio('gender', 1)
Female/: @Form::radio('gender', 2)

Yukarıdaki tanımlamada gender kolonuna ait değer hangisi ile eşleşirse o buton seçili hale gelir.

Checkbox Buton

Checkbox butonların seçili olabilmesi için verilen değerin gelen kayıttaki değer ile eşleşmesi gerekmektedir. Ancak genellikle checkbox değerleri [1,2,5,10] gibi json formunda saklanır. Json çözümlemesi otomatik olarak yapılarak ilgili butonlar seçilir.

@Form::checkbox('colors', 1)
@Form::checkbox('colors', 2)
@Form::checkbox('colors', 5)
@Form::checkbox('colors', 20)

Yukarıdaki butonlardan hangileri eşleşirse o butonlar seçili hale gelir.

Select List

Select nesnesinin seçili gelebilmesi için değerlerinin tanımlanmış olması gerekmektedir.

Gender/: @Form::select('gender', [1 => 'Male', 2 => 'Female'])

Yukarıdaki tanımlamada gender kolonuna ait değer hangisi ile eşleşirse o değer seçili hale gelir.

# Query

Eğer kompleks sorguları tabloya bağlamak isterseniz bu yöntemden istifade edebilirsiniz. DB::query() yönteminin kullanımı ile aynıdır.

Parametreler

string $query Sorgu.
return this

Kullanımı

{{ Form::query(DB::string()->where('id', URI::get('id'))->accounts())->open('accounts') }}
# Process

Form'un güncellenme ve ekleme işlemini otomatik olarak yaptırabilmeniz içindir.

Parametreler

string $process insert - update İşlem türü.
return this

Kullanımı

@Form::where('id', 1)->process('update')->open('users')
@Form::postback()->validate('required', 'xss')->text('name')
@Form::postback()->validate('email', 'required')->text('email')
@Form::select('gender', [1 => 'Male', 2 => 'Female'])
@Form::validate('required')->textarea('about')
@Form::submit('submit', 'Submit')
@Form::close()
@Form::validateErrorMessage()
Validasyon Hata Mesajını Yakalamak

Submit sonrası oluşan validasyon hatasını yakalamak için aşağıdaki 2 yöntemden yararlanılır.

Form::validateErrorMessage()
Form::validateErrorarray()
Uyarı: Bu yöntemlerin değer üretebilmesi için process() yönteminin kullanılıyor olması gerekmektedir.
# GetUpdateRow

Form::process('update') kullanımınında form nesnelerine gelen tablo verilerini tutar.

Parametreler

return object

Kullanımı

@Form::where('id', 1)->process('update')->open('users')
{[ $row = Form::getUpdateRow() ]}
@Form::close()
Uyarı: Bu yöntemlerin değer üretebilmesi için process('update') yönteminin kullanılıyor olması gerekmektedir.
# DuplicateCheck

Form::process('insert') yöntemi ile birlikte kullanılır. Insert işlemi sırasında aynı verinin tekrar kayıt edilmesini engeller. DB::duplicateCheck() yönteminin kullanımıdır.

Parametreler

string ...$columns = '*'
Kontrol edilecek kolonlar. Bu parametrenin boş bırakılması durumunda tüm ID dışındaki tüm kolonlar kontrol edilir.
return this

Kullanımı

@Form::duplicateCheck('message', 'subject')->process('insert')->open('accounts')
# Prevent

Form'un submit buton ile sayfa yenilenmesini önlemek için kullanılır. Yani bir Form::submit() nesnesi ile formun post edilmesi durumunda sayfanın  yenilenmesini engellemek için kullanılır. Özellikle Form::submit() ile ajax gönderimleri yapmak istediğinizde kullanabilirsiniz.

Parametreler

return this

Kullanımı

@Form::prevent()->open('accounts')
@Form::vRequired()->text('name')
@Form::submit('send', 'SEND')
@Form::close()

 

 

# Close


Html </form> kullanımının karşılığıdır.

Parametreler

return string

Kullanımlar

@Form::close()
</form>

 

 

# Text


Html <form input="text"> kullanımının karşılığıdır.

Parametreler

string $name Nesne ismi.
string $value = NULL Değer.
array $attr = [] Özellikler.
return string

Kullanımlar

@Form::id('example-text')
     ->maxlength(10)
     ->text('textBox', 'Welcome!')
<input type="text" name="textBox" value="Welcome!" id="example-text" maxlength="10">

 

 

# Password


Html <form input="password"> kullanımının karşılığıdır.

Parametreler

string $name Nesne ismi.
string $value = NULL Değer.
array $attr = [] Özellikler.
return string

Kullanımlar

@Form::password('password', '*****', ['maxlength' => 10])
<input type="password" maxlength="10" name="password" value="*****"> 

 

 

# Textarea


Html <textarea> kullanımının karşılığıdır.

Parametreler

string $name Nesne ismi.
string $value = NULL Değer.
array $attr = [] Özellikler.
return string

Kullanımlar

@Form::cols(50)->rows(5)->textarea('address', 'Address')
<textarea cols="50" rows="5" name="address">Address</textarea>

 

 

# Submit


Html <form input="submit"> kullanımının karşılığıdır.

Parametreler

string $name Nesne ismi.
string $value = NULL Değer.
array $attr = [] Özellikler.
return string

Kullanımlar

@Form::submit('sendSubmit', 'Send')
<input type="submit" name="sendSubmit" value="Send">

 

 

# Reset


Html <form input="reset"> kullanımının karşılığıdır.

Parametreler

string $name Nesne ismi.
string $value = NULL Değer.
array $attr = [] Özellikler.
return string

Kullanımlar

@Form::reset('clear', 'Clear')
<input type="reset" name="clear" value="Clear">

 

 

# Button


Html <form input="submit"> kullanımının karşılığıdır.

Parametreler

string $name Nesne ismi.
string $value = NULL Değer.
array $attr = [] Özellikler.
string

Kullanımlar

@Form::button('sendButton', 'Send')
<input type="button" name="sendButton" value="Send">

 

 

# Radio


Html <form input="radio"> kullanımının karşılığıdır.

Parametreler

string $name Nesne ismi.
string $value = NULL Değer.
array $attr = [] Özellikler.
string

Kullanımlar

@Form::checked()->radio('gender', 'Female')
@Form::radio('gender', 'Male')
<input type="radio" name="gender" value="Female" checked="checked">
<input type="radio" name="gender" value="Male">

 

 

# Checkbox


Html <form input="checkbox"> kullanımının karşılığıdır.

Parametreler

string $name Nesne ismi.
string $value = NULL Değer.
array $attr = [] Özellikler.
string

Kullanımlar

@Form::checked()->checkbox('trueType', 'true')
@Form::checkbox('trueType', 'false')
<input type="checkbox" name="trueType" value="true" checked="checked">
<input type="checkbox" name="trueType" value="false">

 

 

# Select / Multiselect


Html <select> kullanımının karşılığıdır.

Parametreler

string $name Nesne ismi.
array $options = [] Seçenekler.
mixed $selectedKey = NULL Seçili anahtar.
array $attr = [] Özellikler.
return string

Opsiyonel Yöntemler

Form::table(string $table) : this
Form::query(string $query) : this
Form::including(mixed $data) : this
Form::excluding(mixed $data) : this
Form::order(string $type = 'desc', string $flags = 'regular') : this
Form::option(mixed $key, string $value = NULL) : this

Kullanımlar

$options = [ '34' => 'Istanbul', '19' => 'Corum' ];

echo Form::select('cities', $options, '19');
<select name="cities">
    <option value="34" >Istanbul</option>
    <option value="19" selected="selected">Corum</option>
</select>

v.3.0.1 sürümü ve sonrasında seçenekleri doğrudan veritabanından çekmek isterseniz table() veya query() yöntemlerinden yararlanabilirsiniz.

echo Form::table('accounts')
         ->select('accountList', ['keyColumn' => 'valueColumn']);

İlk eleman için varsayılan anahtar değer tanımlaması yapmak isterseniz aşağıdaki gibi kullanabilirsiniz.

echo Form::table('accounts')->select('accountList',
[
//  'keyColumn'  => 'valueColumn'
    'id'         => 'name',
//  'defaultKey' => 'defaultValue'
    '0'          => 'Musteri seciniz'
]);

Ya da

$query = DB::string()->accounts();

echo Form::query($query)->select('accountList', ['id' => 'name']);

v.3.1.0 sürümünde seçeneklerde görüntülenmesini istediğiniz veya istemediğiniz öğreleri including() ve excluding() yöntemlerini kullanarak belirleyebilirsiniz.

Değere Geriçağrım İşlevi Uygulama

Bu güncelleme ile Form::table() kullanımına bağlı olarak value parametresi manipüle edilebilir hale getirildi. Özellikle çok dilli sistemlerde value'nin seçili dile bağlı olarak değiştirilmesinin istenmesi durumunda kullanılabilir.

echo Form::table('categories')->select('Category', ['ID' => function($row)
{ 
    return $row->name; 
}])
JSON Çözümleme

Bu güncelleme ile Form::multiselect() yönteminin 3. parametresi JSON türünde olması halinde dizi gibi algılanıp çoklu seçim yapılabilmesi sağlandı.

@Form::table('categories')->multiselect('categories[]',  ['ID' => 'Name'], $row->categories)
Dahil Tutma
echo Form::including([2, 3])
         ->select('cityList',
         [
             1 => 'Istanbul', 
             2 => 'Londra', 
             3 => 'Paris'
         ]); 

// output: Londra, Paris
Hariç Tutma
echo Form::excluding([2, 3])
         ->select('cityList',
         [
             1 => 'Istanbul',
             2 => 'Londra',
             3 => 'Paris'
         ]); 

// output: İstanbul

 

 

# File


Html <form input="file"> kullanımının karşılığıdır.

Parametreler

string $name Nesne ismi.
bool $multiple = false
Çoku dosya yüklemesi yapılabilsin mi? Bu değerin true ayarlanması durumuda dosya seçim penceresinde birden fazla dosya aynı anda seçilebilir.
array $attr = [] Özellikler.
return string

Kullanımlar

@Form::file('upload')
<input type="file" name="upload">
Çoklu Dosya Yükleme

Çoklu upload yapılmak istendiğinde ise aşağıdaki gibi bir kullanım mümkündür.

@Form::file('upload', true)
<input type="file" name="upload[]" multiple="multiple">

 

 

# __Call HTML5


Tüm HTML5 nesnelerinden form nesneleri aşağıdaki örnekte olduğu gibi kullanılabilmektedir.

Parametreler

string $name Nesne ismi.
string $value = NULL Değer.
array $attr = [] Özellikler.
return string

Kullanımlar

@Form::tel('myPhone')
@Form::range('myRange')
@Form::color('myColor')

Diğer tüm HTML 5'e ait form nesneleri yukarıdaki gibi kullanılabilir.

 

 

# __toString


Form yöntemlerini sıralı olarak kullanabilmenizi sağlar.

Parametreler

return string

Kullanımlar

@style('bootstrap')

@container
    @row
        @Form::open('contact')
             ->group()->label('name', 'Name:')->text('name')
             ->group()->label('subject', 'Subject:')->text('subject')
             ->group()->label('message', 'Message:')->textarea('message')
             ->close()
    @endrow
@endcontainer

@script('jquery', 'bootstrap')

Yukarıdaki kullanımda dikkat edilirse form nesneleri her defasında Form:: deyimi kullanılmayarak zincirleme bir kullanım oluşturulmuştur..

 

 

# Postback


Form submit edildiğinde form öğelerinin son değerinin korunmasını sağlamak için kullanılır.

Parametreler

bool $postback = true Değerler korunsun mu? False olması durumunda değerler korunmaz.
string $type = 'post'
post - get - request Formun method türü belirtilmişse bu değer formun mevcut method türüne göre değer alır.
return this

Kullanımlar

@Form::postback()->text('name')

 

 

# Validate


Validation::rules() yönteminin görevini üstlenir. Farklı olarak kuralları form nesnesi ile birlikte kullanabilmenizi sağlar.

Parametreler

mixed ...$args Kurallar dizisi.
return this

Kullanımlar

@Form::validate('required', 'xss', ['minchar' => 10])->text('name')
Takma İsim

Takma isim validasyon kontrolünün başarısızlığı durumunda dönen metinde form nesnesi isminin nasıl görüntüleneceğini ayarlarmak için kullanılır.

@Form::validate('required', 'xss', ['minchar' => 10])->alias('Name:')->text('name')
Kuralların Kontrolü

Form nesnesi üzerinden gönderilen kurallar Controller ayağında Validation::check($submitName) yöntemi ile kontrol edilmesi gerekmektedir.

Dosya: Views/home/main.wizard.php
@Form::open()

@Form::postback()
     ->validate('email', 'required')
     ->alias('Email/:')
     ->text('email')

@Form::submit('submit', 'Submit')

@Form::close()

{{ $error ?? NULL }}
Dosya: Controllers/home.php
<?php namespace Project\Controllers;

use Validation, Post;

class Home extends Controller
{
    public function main()
    {
        if( ! Validation::check('submit') )
        {
            View::error(Validation::error('string'));
        }
    }
}

 

 

# vMethod


Html ile ZN Framework'ün validasyon yöntemlerinin harmanlanmış halidir. Kullanıcıya daha kısa sürede geri bildirim sağlaması açısından html'nin validasyonu devreye girerken arkaplanda ZN'nin validasyonu devreye girer. Standart olarak bu yöntemler v harfi ile başlar. İşlev olarak ZN validasyon yöntemleri gibidir.

Yöntemler

Form::vNumeric() : this Sayısal karakter kontrol.
Form::vAlpha() : this Alfabetik karakter kontrolü.
Form::vAlnum() : this Alfabetik veya sayısal karakter
Form::vEmail() : this E-posta kontrolü.
Form::vUrl() : this URL kontrolü.
Form::vRequired() : this Boş kontrolü.
Form::vLimit(int $min = 0, int $max = NULL) : this
Alt ve üst karakter sınır kontrolü.
Form::vMinchar(int $min = 0) : this Alt karakter sınır kontrolü.
Form::vMaxchar(int $max = 0) : this Üst karakter sınıf kontrolü.
Form::vBetween(int $min = 0, int $max = 0) : this
Sayı aralık kontrolü.
Form::vCaptcha() : this ZN captcha kontrolü.
Form::vAnswer() : this Güvenlik sorusu kontrolü.
Form::vPhone(string $pattern = NULL) : this Telefon numarası kontrolü.
Form::vPattern(string $pattern) : this Belirtilen desene göre veri kontrolü.
Form::vIdentity() : this Kimlik numarası kontrolü.
Form::vMatch(string $value) : this Form input nesnesinin isim bilgisine göre karşılaştırma yapar.
Form::vMatchPassword(string $value) : this Kullanımı vMatch() gibidir tek fark ürettiği mesajdır.
Form::vMessage(string $message) : this
Geçersiz bilgi girişi durumunda gösterilmek istenen mesaj. Ön tanımlı olarak Validation:: kütüphanesinin mesajları gösterilir.

Kullanım

 Dosya: Views/Contact/main.wizard.php
@Form::open()
@Form::vMinchar(3)->text('name')
@Form::vEmail()->vMaxchar(100)->text('email')
@Form::vPhone('***-***-**-**')->text('phone')
@Form::vLimit(5, 200)->text('subject')
@Form::vMinchar(3)->vMessage('Bu alan en az 3 karakterli olmalıdır!')->textarea('message')
@Form::submit('send', 'SEND')
@Form::close()
Dosya: Controllers/Contact.php
<?php namespace Project\Controllers;

use Validation, DB;

class Home extends Controller
{
    public function main()
    {
        if( Validation::check('send') )
        {
            DB::duplicateCheck()->insert('post:tickets');
        }
    }
}

 

 

# Serializer

Bir formun tüm verilerinin ajax ile bir kontrolcüye gönderilmesini sağlar. Genellikle Form::button() yöntemi ile kullanılır.

Ön Bilgiler

Veriler post yöntemi ile gönderilmektedir. Dolayısı ile değerlere Post::inputName() ile erişilir.
Ajax işleminin başarılı ile gerçekleştirilmesi durumunda dönen değer javascript'in data isimli değişkeninde saklanmaktadır.

Uyarı: Ajax gönderimi Jquery ile yapıldığı için bu javascript kütüphanesinin sisteme dahil edilmiş olması gerekmektedir.

Parametreler

string $uri Ajax isteğinin hangi kontrolcü yöntemine yapılacağıdır.
mixed $callback Bir html nesnesinin seçiçi bilgisi veya ajax:success geri çağrım işlevi gibi kullanılabilir. 
mixed $datatype = 'standart'
Bu parametre veri türünü json formatında kabul edecek şekilde ayarlanabildiği gibi bir ajax'ın standart özellikleri dışında farklı bir özelliğin eklenmesi için kullanılabilir.
return this

Kullanımlar

Dosya: Views/Contact/main.wizard.php
@Form::open('contact-form')
@Form::text('name')
@Form::textarea('message')
@Form::serializer('Contact/ajaxSendForm', '#successDiv')->button('send', 'SEND')
@Form::close()

Yukarıda Contact/ajaxSendForm yöntemine ajax ile tüm formun verilerini gönderdik. Bu giden verileri işledikten sonra işlem sonucunu $('#successDiv').html(data) nesnesine yazdırdık. Giden veriler post yöntemi ile gönderilmektedir.

Not: 2. parametre'nin string değer alması durumunda ilgili html etiketinin içeriğine dönen değeri yazdırır.
Geriçağrım İşlevi

2. parametrenin {< kodlarınız >} biçiminde kullanımı ile yöntem içerisine doğrudan javascript yazabilmenizin önünü açıyor. Ajax işleminin success durumunda gelen veri data isimli javascript değişkeninde saklanmaktadır.

Dosya: Views/Contact/main.wizard.php
@Form::open('contact-form')
@Form::text('name')
@Form::textarea('message')
@Form::serializer('Contact/ajaxSendForm', 
{<
    if( data.success === true )
    {
        $('#successDiv').html('İşlem başarılı.');
    }
    else
    {
        $('#errorDiv').html('İşlem başarısız!');
    }
>}, 'json')->button('send', 'SEND') 
@Form::close()
Ajax Parametrelerini Genişletme

Ajax işlemine datatype dışında farklı parametreler de eklemek isterseniz 3. parametrenin dizi olarak gönderilmesi gerekmektedir.

@Form::open('contact-form')
@Form::text('name')
@Form::textarea('message')
@Form::serializer('Contact/ajaxSendForm', {< swal(data) >}, 
[
    'dataType' => 'json',
    'async'    => true
])->button('send', 'SEND')
@Form::close()

 

 

# Trigger


Bir form nesnesinin değerinin ajax ile bir kontrolcüye gönderilmesini sağlar. Form::serializer() kullanımına çok benzer farklı olarak hangi olay ile tetikleneceğinin ayarlanabiliyor olmasıdır. Bunun dışında ajax ile sadece kendi değerini yollar. Bu kullanımından dolayı Form::text() vb. gibi form nesneleri ile kullanımı önerilir.

Ön Bilgiler

Form nesnesinin değeri post yöntemi ve kendi ismi ile gönderilir. Yani nesnenin değeri sunucu tarafında Post::inputName() ile alınır.
Ajax işleminin başarılı ile gerçekleştirilmesi durumunda dönen değer javascript'in data isimli değişkeninde saklanmaktadır.
Geriçağrım kullanımında ilgili nesnenin karşılığı javascript'in element isimli değişkeninde saklanmaktadır. Örn: $(element).val() gibi kullanım gerektiren durumlar için kullanabilirsiniz.

Parametreler

string $event Veri gönderme işleminin hangi olay türü ile tetikleneceğini belirtir.
string $uri Ajax isteğinin hangi kontrolcü yöntemine yapılacağıdır.
mixed $callback Bir html nesnesinin seçiçi bilgisi veya ajax:success geri çağrım işlevi gibi kullanılabilir. 
mixed $datatype = 'standart'
Bu parametre veri türünü json formatında kabul edecek şekilde ayarlanabildiği gibi bir ajax'ın standart özellikleri dışında farklı bir özelliğin eklenmesi için kullanılabilir.
return this

Kullanımlar

Dosya: Views/Contact/main.wizard.php
@Form::open('contact-form')
@Form::trigger('keyup', 'Validations/control', 
{< 
    if(data === false) swal('Geçersiz girdi!'); 
>})->text('name') 
@Form::textarea('message')
@Form::serializer('Contact/ajaxSendForm', '#successDiv')->button('send', 'SEND')
@Form::close()

Diğer parametrelerin kullanımları Form::serializer() yöntemi ile aynıdır.