Form Kütüphanesi


    × Bunları biliyor muydunuz?
"ZN Framework'e ait tüm paketler framework dışında da kullanılabilir esneklikte tasarlanmış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 SE ve ZN CE dağıtımları için terminal kurulum komutu.

↓ composer require znframework/package-hypertext

 

 

# Yöntemler


1.0.0 String open(String $name = NULL, Array $attr = [])
1.0.0 String close(Void)
1.0.0 String text(String $name = NULL, String $value = NULL, Array $attr = [])
1.0.0 String password(String $name = NULL, String $value = NULL, Array $attr = [])
1.0.0 String textarea(String $name = NULL, String $value = NULL, Array $attr = [])
1.0.0 String submit(String $name = NULL, String $value = NULL, Array $attr = [])
1.0.0 String reset(String $name = NULL, String $value = NULL, Array $attr = [])
1.0.0 String button(String $name = NULL, String $value = NULL, Array $attr = [])
1.0.0 String radio(String $name = NULL, String $value = NULL, Array $attr = [])
1.0.0 String checkbox(String $name = NULL, String $value = NULL, Array $attr = [])
1.0.0 String select(String $name = NULL, Array $options, String $selectedKey = NULL, Array $attr = [])
1.0.0 String multiselect(String $name = NULL, Array $options, String $selectedKey = NULL, Array $attr = [])
1.0.0 String file(String $name = NULL, Bool $multiupload = false, Array $attr = [])
3.0.0 String html5InputName(String $name = NULL, String $value = NULL, Array $attr = [])
5.8.6.6 String __toString(Void)
4.0.0 This postback(Bool $postback = true, String $type = 'post')
5.4.2 This validate(Mixed ...$rules)
5.8.2.2 String vMethod(Mixed ...$parameters)
5.8.4.1 This serializer(String $uri, Mixed $callback, Mixed $datatype = 'standart')
5.8.4.1 This trigger(String $event, String $uri, Mixed $callback, Mixed $datatype = 'standart')
5.8.4.1 This modal(String $modalId)
5.8.4.1 String modalbox(String $modalId)
5.8.5 This group(Mixed ...$parameters)
5.8.5 This label(Mixed ...$parameters)
5.8.5 This col(String $size)
5.8.5 This helptext(String $content, String $class = '')
5.8.5.3 This popover(String $placement, String $content)
5.8.5.3 This tooltip(String $placement, $content = NULL, Bool $html = NULL)

 

 

# Özellikler


Tüm form nesneleri için geçerli tüm HTML özellikleri bir yöntemle kullanılabilir.

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)->textarea('name', 'Value')
<textarea data-validation="required" my-id="1" name="name">Value</textarea>

 

 

# Open (ZN >= 1.0.0)


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')
<form name="example-form" method="get" action="https://www.example.xxx/home">
Opsiyonel Yöntemler
3.0.1 This enctype(String $type)
4.3.6 This csrf(Void)
5.4.2 This where(String $column, Scalar $value, String $logical = 'and')
5.4.2 This query(String $query)
5.4.2 This process(String $process)
6.0.1.7 Object getUpdateRow(Void)
5.8.0.8 This duplicateCheck(...$columns = '*')
5.8.4.4 This prevent(Void)
# Enctype (ZN >= 3.0.1)

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 (ZN >= 4.3.6)

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

Parametreler

Void
return This

Kullanımı

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

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 (ZN >= 5.4.2)

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 (ZN >= 5.4.2)

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 (ZN >= 6.0.1.7)

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

Parametreler

Void
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 (ZN >= 5.8.0.8)

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 (ZN >= 5.8.4.4)

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

Void
return This

Kullanımı

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

 

 

# Close (ZN >= 1.0.0)


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

Parametreler

Void
return String

Kullanımlar

@Form::close()
</form>

 

 

# Text (ZN >= 1.0.0)


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 (ZN >= 1.0.0)


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 (ZN >= 1.0.0)


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 (ZN >= 1.0.0)


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 (ZN >= 1.0.0)


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 (ZN >= 1.0.0)


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::button('sendButton', 'Send')
<input type="button" name="sendButton" value="Send">

 

 

# Radio (ZN >= 1.0.0)


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.
return  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 (ZN >= 1.0.0)


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.
return  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 (ZN >= 1.0.0)


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

Parametreler

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

Opsiyonel Yöntemler

This table(String $table)
This query(String $query)
This including(Mixed $data)
This excluding(Mixed $data)
This order(String $type = 'desc', String $flags = 'regular')
This option(Mixed $key, String $value = NULL)

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.

Including
echo Form::including([2, 3])
         ->select('cityList',
         [
             1 => 'Istanbul', 
             2 => 'Londra', 
             3 => 'Paris'
         ]); 

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

// output: İstanbul

 

 

# File (ZN >= 1.0.0)


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">

 

 

# HTML5 Nesneleri


Tüm HTML5 nesnelerinden form nesnelerinin kullanımı aynı yapıda olduğu için aşağıda html5InputName yerine HTML5 ile gelen form nesnelerinin adı yazılarak kullanılabilir. 

Parametreler

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

Kullanımlar

@Form::tel('phone')

 

 

# __toString (ZN >= 5.8.6.6)


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

Parametreler

Void
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 (ZN >= 4.0.0)


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 (ZN >= 5.4.2)


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 (ZN >= 5.8.2.8)


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

5.8.2.8 This vNumeric(Void)  Sayısal karakter kontrol.
5.8.2.8 This vAlpha(Void) Alfabetik karakter kontrolü.
5.8.2.8 This vAlnum(Void) Alfabetik veya sayısal karakter
5.8.2.8 This vEmail(Void) E-posta kontrolü.
5.8.2.8 This vUrl(Void) URL kontrolü.
5.8.2.8 This vRequired(Void) Boş kontrolü.
5.8.2.8 This
vLimit(Int $min = 0, Int $max = NULL)
Alt ve üst karakter sınır kontrolü.
5.8.2.8 This vMinchar(Int $min = 0) Alt karakter sınır kontrolü.
5.8.2.8 This vMaxchar(Int $max = 0) Üst karakter sınıf kontrolü.
5.8.2.8 This
vBetween(Int $min = 0, Int $max = 0)
Sayı aralık kontrolü.
5.8.2.8 This vCaptcha(Void) ZN captcha kontrolü.
5.8.2.8 This vPhone(String $pattern = NULL) Telefon numarası kontrolü.
5.8.2.8 This vPattern(String $pattern) Belirtilen desene göre veri kontrolü.
5.8.2.8 This vIdentity(Void) Kimlik numarası kontrolü.
5.8.3.3 This
vMessage(String $message)
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 (ZN >= 5.8.4.1)


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 (ZN >= 5.8.4.1)


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.

 

 

# Modal (ZN >= 5.8.4.1)


Bootstrap modalbox'ını modal id değerine göre açmak için kullanılır.

Uyarı: Bootstrap javascript kütüphanesinin sisteme dahil edilmiş olması gerekmektedir.

Parametreler

String $modalId Hangi id değerine sahip modalbox'un açılacağını belirler.
return This

Kullanımlar

@Form::modal('myModal')->button('openModal', 'Open Modal') 

 

 

# Modalbox (ZN >= 5.8.4.1)


Bootstrap modalbox'ı oluşturmak için kullanılır.

Uyarı: Bootstrap javascript kütüphanesinin sisteme dahil edilmiş olması gerekmektedir.

Parametreler

String $modalId Oluşturulan modalbox'un id değeri
return String

Kullanımlar

@Form::modal('myModal')->button('openModal', 'Open Modal') 
@Form::modalbox('myModal')
Opsiyonel Yöntemler
This modalHeader(Mixed $content)
This modalBody(Mixed $content)
This modalFooter(Mixed $content)
This modalSize(String $size)
This modalDismissButton(Bool $status = true)
@Form::modal('myModal')->button('openModal', 'Open Modal') 

@Form::modalHeader('Hi!')->modalBody('ZN Framework')->modalbox('myModal') 
6.0.2.3 Güncellemesi

String parametre yerine geri çağrım işlevi (Callable) de uygulanabilir.

@Form::modal('myModal')->button('openModal', 'Open Modal') 

@Form::modalSize('lg')->modalHeader('Hi!')->modalBody
({<
    @Form::text('Name')
>})->modalbox('myModal') 

 

 

# Group (ZN >= 5.8.5)


Bootstrap form nesnelerinin gruplanması için kullanılan elementine karşılık gelmektedir. 2 tür parametre dağılımı vardır.

Uyarı: Bootstrap javascript kütüphanesinin sisteme dahil edilmiş olması gerekmektedir.

Parametreler - Nesne

String $class = '' Grup div elementine css sınıfları uygulamak için kullanılır. Dahili olarak form-group sınıfı uygulanmaktadır.
return This

Parametreler - Kapsayıcı

Callable $code Gruplanacak form nesneleri içerisine yazılır.
String $class = '' Grup div elementine css sınıfları uygulamak için kullanılır. Dahili olarak form-group sınıfı uygulanmaktadır.
return This

Kullanımlar

@Form::group()->text('email') 
@Form::group()->password('pass') 

Kapsayıcı Kullanım

Birden fazla form nesnesinin aynı grup içerisinde yer alması için aşağıdaki gibi de kullanılmaktadır.

@Form::group
({<
   @Form::text('email')
   @Form::password('pass')
>}) 

 

 

# Label (ZN >= 5.8.5)


Bootstrap form nesnelerine etiket eklemek için kullanılır. 2 tür parametre dağılımı vardır.

Uyarı: Bootstrap javascript kütüphanesinin sisteme dahil edilmiş olması gerekmektedir.

Parametreler - Text / Textarea / Select

String $for = NULL İlgili form nesnesi ile ilişkisini gösteren id değeri.
String $value = NULL Form nesnesinin yanında görünmesi istenilen yazı.
String $class = NULL İlgili label etiketine varsa css sınıfı uygulamak için kullanılır.
return This

Parametreler - Checkbox / Radio

String $value = NULL Form nesnesinin yanında görünmesi istenilen yazı.
String $class = NULL İlgili label etiketine varsa css sınıfı uygulamak için kullanılır.
return This

Kullanımlar

@Form::group()->label('email', 'E-posta:')->text('email') 
@Form::group()->label('pass', 'Şifre:')->password('pass')

Checkbox ve radio elementleri için kullanım aşağıdaki gibidir.

@Form::group()->label('Bay')->radio('gender')
@Form::group()->label('Bayan')->radio('gender')

 

 

# Col (ZN >= 5.8.5)


Bootstrap form nesnelerine sütun genişliği uygulamak için kullanılır.

Parametreler

String $size Genişlik değeri: Örn: sm-2
Return This  

Kullanımı

@Form::group()->label('email', 'Email:')->col('sm-4')->text('email')

 

 

# Helptext (ZN >= 5.8.5)


Bootstrap form nesnelerine yardım yazısı için kullanılır.

Parametreler

String $text Yazı.
String $class = '' Varsa eklenecek css sınıfı. Mevcut olarak help-block sınıfı uygulanır.
Return This  

Kullanımı

@Form::helptext('Bu bölüm e-posta alanıdır.')
     ->group()
     ->label('email', 'Email:')->col('sm-4')
     ->text('email')

 

 

# Popover (ZN >= 5.8.5.3)


Bootstrap'ın popover bileşenin Form::button() veya Html::anchor() ile kullanılmasını sağlar. Kaynak dosyalarının nasıl dahil edilmesi gerektiği konusunda detaylar için tıklayınız

2 parametre dizilimi vardır. 1.si nesne oluşturmak için özellik olarak kullanılırken 2.si popover nesnesini aktif etmek için javascriptlerden sonra kullanılır.

Parametreler - Html

String $placement Popover'in butonun neresinde açılması gerektiği. Örn: right
Seçenekler right, left, top, bottom
String $content Popover ile açılan pencere içerisinde görünecek yazı.
Return This  

Parametreler -  Javascript

String $selector = 'all' Herhangi bir seçici belirtimez ise tüm popover nesneleri kabul edilir
Array $options Seçenekler ile ilgili detaylar için tıklayınız.
Return String  

Kullanımı

@style('css/bootstrap4.css')

@Form::class('btn btn-danger')->popover('right', 'ZN Framework')->button('name', 'NAME')

@script('jquery''js/bootstrap4.js''js/popper.min.js')

@Form::popover('all', ['delay' => 100])

Yukarıda kullanılan style ve script yolları örnek amaçlı kullanılmıştır.

Olay Yönetimi

Popover nesnesinin javascriptine olay eklemek için on() yöntemi kullanılır.

@Form::on('shown', 'alert(1)')->popover('all', ['delay' => 100])

Daha fazla olay türü için tıklayınız.

 

 

# Tooltip (ZN >= 5.8.5.3)


Kullanımı popover() yöntemi ile aynıdır. detaylar için tıklayınız