MY_form_helper++

Kategori: Codeigniter, Php
Tarih: 21st Mart 2012


Çeşitli 25 tane girişi bulunan (textbox, combobox vs..) bir form düşünün. Ve bazı alalnları girmesi zorunlu. Bunu en basit, javascript ile browser taraflı kontrol ettirebilir ve doğrulanmış veriyi göndertebilirsiniz. Bu bir çözümdür. Ama sistemde bir tutarsılık yada belkide bir açık oluşturabilir. Mecburen sunucu tarafında da gelen veriyi kontrol etmelisiniz. Veriyi kontrol ettiniz ve bazı alanların hatalı girildiğini gördünüz kullanıcıya formu tekrar göstereceksiniz. Okuduğunuz formdaki verileri de forma yazmalısınız. Mesela 25 tane giriş alanı bulunan bir formda adam mail adresini yanlış yazdığı için forma tekrar yönlendirilse ve formdaki bütün alanların silindiğini, bunları yeniden girmesi gerektiğini görse bu çok sinir bozar.

Codeigniter bunun için form_helper yazmış (set_value(), set_radio…). Form yeniden yüklendiğinde kullanıcının verisi forma girilmiş olarak geliyor. Aşağıdaki örnekte bunun kullanımını görebilirsiniz:

<select name=”myselect”>
<option value=”one” <?=set_select(‘myselect’, ‘one’, TRUE); ?>>One</option>
<option value=”two” <?=set_select(‘myselect’, ‘two’); ?>>Two</option>
<option value=”three” <?=set_select(‘myselect’, ‘three’); ?>>Three</option>
</select>

Bu şekilde sorun halledilmiş oldu ama buda biraz karmaşık bir kullanım. Yeniden yazdığım form_helper ile yaratılan form nesnelerininin otomatik dolma özelliği varsayılan olarak geliyor. Yukarıdaki kod yerine

$options = array(
‘one’  => ‘One’,
‘two’    => ‘Two’,
‘three’   => ‘Three’
);

echo form_dropdown(‘myselect’, $options, ‘one’);

yazılması yeterli. Form ilk açıldığında hangisi seçili gelecek, kullanıcıya form tekrar gösterilecek ise kullanıcının girdiği veriler neler vs. otomatik yapılıyor. Özelliğin geçerli olduğu fonksiyonlar: form_input, form_textarea, form_multiselect, form_dropdown, form_checkbox, form_radio.

MY_form_helper dosyasını buradan indirebilirsiniz. (Yeni başlayanlar için: dosyayı ./application/helpers/ klsörüne kopyalayın).




Yorumlar: 1 »

One Response to “MY_form_helper++”



Pings responses to this post

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Comment

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Optimization WordPress Plugins & Solutions by W3 EDGE