Codeigniter Dersleri – 17 – Seçili Bilgiyi Forma Gönderme
Bu dersimizde düzenlemek istediğimiz siparişin yanındaki düzenle butonuna bastığımızda, sipariş formumuzun ilgili alanlarının, gelen bilgiyle nasıl doldurulacağını anlatacağım. Bunun için model dosyamızda ilgili siparişi çekebilmek için fonksiyon oluşturacağız. Aslında projenin başlarında oluşturduğumuz bir fonksiyonu tekrar düzenleyerek işe yarar hale getireceğiz.
Bunun için pizza_model.php dosyamızda bulunan get_specific_order() fonksiyonunu aşağıdaki şekilde tekrar düzenleyelim. (Bu fonksiyon mevcut değilse sizde ekleyin)
Şimdi hazırladığımız model dosyasını controller dosyamızdan çağıralım. Bunun için pizza.php (controller) dosyamızdaki order() fonksiyonuna bir if yapısı ekleyelim. Bu yapı yeni bir sipariş mi oluşturmak istiyoruz, yoksa mevcut siparişi düzenlemek mi istiyoruz, onu belirlemek için kullanılacak.
order() fonksiyonumuz artık parametre alan bir fonksiyon oldu. Bu şekilde fonksiyona parametre yolladığımızda eğer bu parametre sıfırdan büyükse, bu parametreyle eşleşen siparişi database den çekip forma aktarıyoruz. Eğer parametre göndermezsek default olarak $id=0 oluyor ve boş bir sipariş form sayfasıyla karşılaşıyoruz. Artık url den veri yollayacağız ve GET methodu ile bu veriyi almış olacağız.
Şimdi de form sayfamızda biraz düzenleme yapalım. pizza_order.php (view) dosyamızın yeni hali şöyle olacak.
burada form_hidden şeklinde, siparişin id sini tutan bir eleman ekledik. Ayrıca dropdown menülerde seçili gelmesi gereken değerler için 3. parametreleri yazdık. Şimdi denemesini yapabiliriz. Adres çubuğumuza şöyle yazarsak;
http://localhost/Codeigniter/index.php/pizza/order/1
1 id numaralı siparişimiz forma yansımış olmalı, yada ilgili siparişin yanındaki düzenle linkine tıklarsak da aynı işlemi yapmış oluruz. Tabiki hata almamak için 1 id numaralı siparişinizin olması gerekiyor.
Bu dersimizde verileri forma tekrar nasıl geri göndereceğimizi ve veritabanından nasıl çekeceğimizi gördük. Sonraki dersimizde ise bu gelen verileri değiştirdikten sonra güncelleme işlemlerini yapacağız.
Ayrıca isterseniz şu ana kadar tamamladığımız projenin kaynak kodlarını toplu halde paylaşabilirim. İyi günler…
Bunlara da Göz Atmak İsteyebilirsiniz.
<<< Önceki: Codeigniter Dersleri – 16 – Url Helper (Url Yardımcısı)
Sonraki: Codeigniter Dersleri – 18 – Database Veri Güncelleme (Updating Data) >>>
Sipariş ver linkine tıklayınca hata veriyor. Güncelleme olayında sorun yok linke tıklayınca form içine veriler geliyor. Ama dediğim gibi boş sipariş girme sayfası çalışmıyor.
Evet dediğinizin olması muhtelem, çünkü yeni değişkenler tanımladık ve default değerleri yok. Ben onu bir sonraki dersin başında anlatacaktım ama bakıyorum benden hızlı çıktınız. 🙂
Bu işler tam bana göre… Uğraşmayı seviyorum…
Merhaba konu anlatımı için öncelikle teşekkürler, bu konu ile ilgili bir sorum olacak ben bu bilgileri çekip başka bir sayfada düzenlemesini yapmak istiyorum örneğin duzenle.php nasıl bir yol izlemeliyim form sayfasını aynen kopyalayarak submite komut vererek yapma şansım varmı?
Amacınız sadece düzenleme işini başka bir sayfada yapmak ise, dediğiniz gibi form sayfasının aynı yapısını kullanabilirsiniz. Anasayfadaki düzenleme linkini bu sayfaya yönlendirmeniz yeterli olur.
Merhaba,
pizza.php’nin 22. satırında
if($query['thin_edge']=='yes'){
yes değeri gönderildiğinde. Kutu tıklanmış olarak gelmiyor. Bunun yerine bu değerin 1 olarak gönderilmesi gerekir.
Haklısınız selcukhoca, orada bir problem var. Ancak problem ‘yes’ den değil database den kaynaklanıyor. Çözüm için indirdiğimiz sql dosyasını import ettikten sonra pizza tablosunun yapısında küçük bir değişiklik yapacağız.thin_edge field ının türünü int yerine varchar(10) yapsak problem ortadan kalkıyor. Bu dersimizi anlatırken int kullanılmıştı, ancak ilerki derslerde bu varhcar a döndü. Şimdi geriye dönüp baktığımızda problem çıkıyor. Dediğim gibi yaparsanız düzelir.
Elinize sağlık admin. Çok iyi gidiyor..
merhabalar.sizin derslerinizi takip ederek kendi projemi geliştirmeye çalışıyorum.bu derste order fonksiyonuna eklediğimiz id leri tutan form_hidden kısmında hata veriyor sistem.
bunun sebebi ne olabilir??
Eren,
Su haliyle bir hata goremedim. Hatayi daha detayli belirtirsen yardimci olmaya calisirim.
pizza_order.php satırında $baslik için hata döndürüyor. $baslik değişkenini nerede tanımladık. Ek olarak gözden kaçırmış olabilirim ama heading fonksiyonunun görevi nedir? Kolay gelsin.
Yorum Bırakın!
En Son Yazılanlar
Codeigniter Dersleri
Kategoriler
Teknoloji Haberleri
Android Dersleri
Arşiv
Sitemizin QR Kodu
Yeniliklerden İlk Sizin Haberiniz Olsun
KodMerkezi.Net Facebookta
En Çok Okunanlar
En Son Aranan Kelimeler
En Çok Oy Alanlar
Etiket Bulutu
İlginizi Çekecek Siteler
Arşiv
Yönetim
En Son Yapılan Yorumlar
En Çok Okunanlar