Codeigniter Dersleri 14 – Tasarım etkileşimi

PHP Programlama  Eylül 6, 2016

Merhaba, yazıma kaldığım yerden devam edeceğim. Bu gün yeni kayıt, güncelle ve silme işlemlerini yapacağız. Create sayfamızı önceki yazılarımdan birinde zaten anlatmıştım ancak tasarım olayına girmemiştik. Bu yüzden orada da bir tasarım etkileşimi yapma taraftarıyım. Hemen işe koyulalım ve create olayını tasarlayalım.

Öncelikle liste sayfasının tasarımını biraz toparlayalım buton şu bu nerede belli olsun. Telefon defteri için hazırladığımız index.php dosyasını düzenleyelim ve yeni kayıt için bir link koyalım.

2016-04-11 11_02_19-codeigniter-v3-ders - Cloud9

Evet sayfamız bu şekilde yeni kayıt linkine de sahip olmuş oldu. Şimdi create.php viewimizi düzenleyelim. Onu önceden yapmıştık sadece tasarım giydirme yapılacak.

2016-04-11 11_17_39-codeigniter-v3-ders - Cloud9

Formu bu şekilde düzenledikten sonra header ve footer için action ı da controller den düzenlememiz gerekecek.

2016-04-11 11_19_23-codeigniter-v3-ders - Cloud9

Controller de sadece create actionunu düzenledik header ve footer için. Bu arada base_url() fonksiyonunun çalışması için url helperini de yüklememiz gerekti. Post aşaması ile ilgili yapılacak birşey yok orası zaten aynı kalıyor. Artık create işlemi hazır. Şimdi gelelim düzenleme işlemine. İşleme öncelikle model katmanından başlayalım. Id üzerinden çalıştığımız için Id ile veri getiren bir fonksiyon ekleyeceğiz.

2016-04-11 11_27_42-codeigniter-v3-ders - Cloud9

Modelimize id ile veri getiren bir fonksiyon eklemiş olduk. Basitçe get_where kullanarak id ile veri getirmeyi sağladık. Şimdi listeleme ekranında bir butonla kayıt düzenleme isteğinde bulunalım. Bunun için index.php view inde bir buton eklememiz gerekecek.

2016-07-31 20_47_38-İşlem merkezi

Bakıyoruz oldu mu diye hemen

2016-09-02 11_40_35-CI V3 Dersler

Sanırım bu hali olmuş gibi görünüyor. Şimdi düzenleme sayfasına geçebiliriz. Düzenleme sayfası için hemen bir action metodu oluşturalım adı da edit olsun.

2016-09-02 12_16_14-codeigniter-v3-ders - Cloud9

 

Burası açıkcası create metoduna benziyor. Tek fark kayit diye erişeceğimiz bir referansa getDataById ile bizim düzenleyeceğimiz kaydı geçirmiş olduk. Burada ki $id değeri malumunuz index te kurguladığımız linkten gelmekte. Şimdi view tarafına bakalım. Create.php viewini copyalayıp edit.php olarak değiştirip aşağıda ki gibi düzenliyoruz.

2016-09-02 12_17_31-codeigniter-v3-ders - Cloud9

Bu sayfada eklenmiş tek alan form_hidden alanı id değerini göndermek adına var. Diğer kısımlar ise gelen datanın gösterilmesi için inputlara eklenmiş durumda. Bir de formun actionu create_post dan edit_post a çevirdik. E bu dosyayı editledikten sonra kaydedecek yere gitmeli. Burası da bu kadar diyoruz. Bir bakalım çalışınca neye benziyor.

2016-09-02 12_23_06-CI V3 Dersler

Cevdet kaydını düzenle dediğimizde bu çıkmış oldu. Demekki doğru yoldayız. Gelelim edit_post olayına ki kayıt işlemini tamamlayalım. Unutmadan model içerisinde hala update işlemini yapan bir fonksiyon yok. Onu yazarak başlayabiliriz.

2016-09-06 08_58_34-codeigniter-v3-ders - Cloud9

Bu da bizim update de kullanacağımız kodumuz. Şimdi controller de post ettiğimiz edit_post metodunu yazalım.

2016-09-06 09_02_12-codeigniter-v3-ders - Cloud9

Bu action aslında insertle aynı gibi. Tek fark güncellenecek kayıdı referans etmek için $where dizisine id yi ekletip onun güncelleneceğini söylemek. Bir de unutmuyoruz modelin insert değil update fonksiyonunu kullandık. Aksi halde insert ederek yeni bir kayıtmış gibi davranır.

2016-09-06 09_05_21-CI V3 Dersler

Evet cevdetin numasını 09009101010 olarak değiştirmiş bulunduk. Demek ki çalışıyor. Ne kaldı tabi ki silme. Onun için de modelimize bir delete methodu oluşturalım.

2016-09-06 09_08_29-codeigniter-v3-ders - Cloud9

Delete metodu kısa ve öz bir metod, tablo adı ve neyin silineceğini sorgulayacağımız bir $where dizisi. Tabi biz id ile çalıştığımız için id göndermekteyiz. Senaryo karışıklaşabilir bu size kalmış. Pekala şimdi controllere delete action yazalım.

2016-09-06 09_11_56-codeigniter-v3-ders - Cloud9

Burada da silme işlemini yapacak yöntemi yazdık. Bu arada resim olarak paylaşıyorum ama daha önceki konularda verdiğim gibi bir github hesabı ve online test edebileceğiniz bir cloud9 hesabı var oradan her an ulaşabilirsiniz. Şimdi geldik listeleme yaptığımız sayfaya bir sil butonu eklemeye.

2016-09-06 09_15_07-codeigniter-v3-ders - Cloud9

2016-09-06 09_15_32-CI V3 Dersler

Yukarı da ki kodu aşağıda ki de görüntüsü. Kayıt silme işlemi de tamamlanmış oldu. Bu arada silme işlemine onclick eventi ekledim böylece silmeden önce size silinsin mi diye soracaktır. İsterseniz bootstrap modallarla da bunu yapabilirsiniz tabi gerekli bileşenleri internetten bulmanız gerek. Bu konumuz dışı olduğu için şu anda değinmeyeceğim belki ilerde. Bu dersimiz de bu kadar. Bu arada yeni ders yayınlamayı düşünmüyordum, daha çok can alıcı bir kaç nokta farkettikçe yazarım dedim. Lakin bir kaç arkadaş mesaj atmış devamı yok mu diye. Madem bir faydası var o zaman devam edeyim dedim. Bu arada o arkadaşlara da teşekkür ederim.

Proje Cloud9 adresi: https://ide.c9.io/halityurttas/codeigniter-v3-ders

Proje GitHub adresi: https://github.com/halityurttas/codeigniter4sampleV3

Cloud9 dan kodları test edip kendinize bir kopya oluşturabilir, isterseniz github dan indirip local en son haliyle kullanabilirsiniz. Esenlikle…

Bu yazı 2063 defa görüntülendi

“Codeigniter Dersleri 14 – Tasarım etkileşimi” için bir cevap

  1. Araştırdığım bir meseleydi teşekkür ederim

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Yazar Hakkında

15 yıllık çalışma hayatında birçok proje geliştirmiş binlerce projeyi inceleme fırsatı bulmuş yazılım aşığıdır. İşini hobi olarak gören yazarımız iş hayatını profesyonelce zevkle sürdürmektedir.

Son Eklenenler