Codeigniter Dersleri – 4 – GET Methodu
View dosyasına parametre göndermeyi bir önceki dersimde anlatmıştım. Bu derste ise classımızın fonksiyonlarına nasıl parametre göndereceğimizi anlatacağım.
Klasik php syntaxında get methodu ile veri gönderirken kullandığımız yapı aşağıdaki şekildedir.
index.php?name=mexico&unit=3 gibi,
Ama codeigniterde bunu biraz daha farklı şekilde yapacağız. Örneğin:
http://localhost/CodeIgniter/index.php/pizza/index adresine parametre ekleyerek göndereceğiz verilerimizi. Yani üstteki iki adresi birleştirirsek,
http://localhost/CodeIgniter/index.php/pizza/index/mexico/3 şeklinde kullanacağız.
Şimdi application/controllers altındaki pizza.php dosyasını aşağıdaki gibi güncelleyelim.
adres çubuğuna
http://localhost/CodeIgniter/index.php/pizza/get_method/mexico/3 (düzeltilmiştir)
yazalım ve deneyelim.
Gördüğünüz gibi eğer get methoduyla veri göndermek istiyorsak bunu class/function/veri/veri/veri şeklinde yollayabiliyoruz ve ilgili fonksiyonumuzu da alacağı parametreye göre tanımlıyoruz. function($veri,$veri,$veri)…
Bunlara da Göz Atmak İsteyebilirsiniz.
<<< Önceki: Codeigniter Dersleri – 3 – Parametreler
Sonraki: Csharp ile Uzak MySql Database Bağlantısı >>>
Benim Merak ettiğim URL kısmındaki mexico neyi temsil ediyor??? Yazı içinde ayrıca teşekkürler…
En son resimde görüldüğü gibi,index.php den sonra gelen ilk değişken classımızı (aynı zamanda o dosyanın ismi), ikinci parametre classdaki fonksiyonu, ve bundan sonra gelen bütün parametreler, o fonksiyona gönderilecek olan değeri temsil ediyor. Yani sorunuzdaki mexico ve 4 değişkeni function_get_method() fonksiyonuna parametre olarak gönderiliyor.
Merhaba verdiğiniz cevap için çok teşekkür ederim. Daha iyi anlamamı sağladı neredeyse tüm derslerinizi takip ediyorum ve kendi projemi yazmaya başladım sayenizde fakat yapmak istediğim projede bir bölümde taklıdım, Şöyleki verdiğiniz bilgiler doğrultusunda bir form hazırladım buna select listler kullandım birbirine bağlı şekilde bu select menülerin verileri database den alıyorum get ile başka bir sayfaya taşımak istiyorum fakat seçili olanı değil value kısmındaki bilgiyi alıyor. Bu konu hakkında nasıl bir fikir yürütebilirsiniz? Kusura bakmayın uzun oldu 🙂
11. ve 14. derslerimizi okudunuz mu? Evet ise soruyu biraz daha açabilir misiniz?
Şöyle anlatayım bir form hazırladım ve bu formda birbirine bağlı Marka Model ve Yıllar adında select menüler hazırladım tüm bilgileride veritabanından alıyorum bunu form olarak hazırladım ama buradaki bilgileri bilgi diye başka bir sayfa hazırladım ve burada göstermem gerekti. Session kütüphanesi oluşturdum ve çok güzel bir şekilde verileri alıyorum ama bu select menülerdeki seçilen değerleri yazdıramadım. option tagları arasında value kısmına marka_id yazdırıyorum bunu alıp diğer sayfaya yazdırıyordu fakat value değerini FALSE yapınca herşey düzeldi 🙂 Bu arada tüm derslerinizi dikkatli bir şekilde takip ettim ilgilendiğiniz içinde teşekkür ederim.
Dersler için çok teşekkürler,
“http://localhost/CodeIgniter/index.php/pizza/index/mexico/3” yerine
“http://localhost/CodeIgniter/index.php/pizza/get_method/mexico/3” yazdigimizda deneyebiliyoruz
http://localhost/CodeIgniter/index.php/pizza/index/mexico/3
Burada b,r yanlışlık var.. Bu şekilde çağırdığımızda çalışmaz.
Çünkü index fonkisyonunu çağırıyoruz.
http://localhost/CodeIgniter/index.php/pizza/get_method/mexico/3
Olması gerekiyor.
Ayrıca ilk defa MVC mimarisi ile uğraşmaya başladım.. Sizin yazılarınızı baştan sona kadar okuyup, uygulayıp öğrenmeye çalışacağım..
Bundan sonraki ilk hedefim ise kendi framework’ümü oluşturmak olacak.
Teşekkürler.
Teşekkürler İlyas, düzeltmeyi yaptım.
get_method değil de doğrudan index’e bağlamak istiyorum ama /index’i yazmadan
http://localhost/ci-ogreniyorum/index.php/pizza/index/mexico2/32 değil de http://localhost/ci-ogreniyorum/index.php/pizza/mexico2/32 gibi. Ayarlardan mümkün müdür?
Teşekkürler
Harun,
application/config/routes.php dosyasında şöyle bir yönlendirme yapabilirsin.
$route['pizza/([a-z0-9]+)/(\d+)'] = "pizza/index/$1/$2";
Ayrıca buradaki sayfayı ayrıntılı bilgi için inceleyebilirsin.
Hızlı cevabın ve desteğin için çok teşekkür ederim. CI’i yeni öğrenen birisi olarak ne kadar dua etsem az?
Merhabalar;
CI ogrenmeye calısıyorum. Ornekleriniz özellikler bir proje olarak gitmeniz çok güzel.
bir önceki derste router kısmında “welcome” yerine kendi oluşturduğumuz “pizza” değerini yazmıştık. boylece adres cubuguna uzun uzadıya adresi yazmıyorduk.
http://localhost/CodeIgniter
şeklinde bir adres yazdığımızda bizim index fonksiyonumuz direkt çalışıyordu.
Get motodu ile deger gonderme ve cekme isleminde ise adresi neden yine uzun sekilde yazıyoruz.
http://localhost/CodeIgniter/index.php/pizza/get_method/mexico/3
buradaki “http://localhost/CodeIgniter” kısmını anladım.
pizza, bizim controllerımızdaki clasımız.
get_method, fonksiyonumuz.
mexico ve 3 degerlerimiz.
bunlarda sorunum yok ama index.php neyi ifade etmektedir. yazmasak olmuyor mu?
Merhaba Gürhan,
Şu çözümü denemeni istiyorum,
Seo için index.php ifadesini url den kaldırmak için .htaccess dosyasında düzenleme yapmak gerekiyor. Bu dosya kök dizininde bulunmalıdır.
application->config->config.php
dosyasında bulunan
$config['index_page'] = 'index.php'; değeri $config['index_page'] = '';
olarak değiştirilmelidir.
.htaccess dosyası ise şu şekilde düzenlenmelidir.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Merhabalar;
Malesef dediğiniz şekilde yaptıgımda “500 interval server Error” almaktayım.
Gürhan,
Localhostta mı çalışıyorsun, gerçek server üzerinde mi? Eğer localhostta çalışıyorsan .htaccess dosyasının çalışması için bazı ayarlar yapman gerekiyor.
sunucu uzerinde calısıyorum. ama olmadı ne yazıkkı.
deneme amaclı o calısmayı sildim. sıfırdan başladım bir yere kadar işlemlerimi getirdim fakat session ve formlard takıldım.
facebook hesabı ile login yaptırabiliyorum fakat bir form işlemi yaptığımda session değeri kayboluyor. (belki de mantığım hatalıdır. Şu an Class yapısını ve codeigniteri kafamda oturtmak için yapıyorum bunu) sonra baska bir sayfaya gectiğimde session tekrar olusuyor :(. Şimdi kafamı kurcalayan kısım bu.
İlgin için teşekkürler.
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