Anasayfa » Codeigniter, Php

Codeigniter Dersleri – 4 – GET Methodu

15 Haziran 2011 9.141 kez okundu 16 yorum
1 Star2 Stars3 Stars4 Stars5 Stars (6 oy,5 üzerinden : 4,33 )
Loading...

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.

<?php
 
class Pizza extends CI_Controller 
{
	function __construct()
	{
		parent::__construct();
	}
	function index()
	{
		$title='Kodmerkezi.net Pizza Sipariş Sayfası';
		$header='<h1>Siparişler</h1>';
		$orders='Sipariş Yok';
		//Şimdi üstteki değişkenleri bir araya toplayalım. Bunun için hepsini data dizisinin içine atalım.
		$data['title']=$title;
		$data['header']=$header;
		$data['orders']=$orders;
		$this->load->view('pizza_view',$data);
	}
	function get_method($name='',$unit='')
	{
		$data['title']='Kodmerkezi.net Pizza Sipariş Sayfası';
		$data['header']='<h1>Siparişler</h1>';
		if(!$name || !$unit)
		{
			$data['orders']='Sipariş Yok';
		}
		else
		{
			$data['orders']='Adı: '.$name.' Adedi: '.$unit;
		}
 
		$this->load->view('pizza_view',$data);
 
	}
 
}
?>

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)…

<<< Önceki:

Sonraki: >>>


Facebookta Paylaş

16 yorum »

  • Mehmet Doğan dedi ki:

    Benim Merak ettiğim URL kısmındaki mexico neyi temsil ediyor??? Yazı içinde ayrıca teşekkürler…

  • admin dedi ki:

    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.

  • Mehmet Doğan dedi ki:

    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 🙂

  • admin dedi ki:

    11. ve 14. derslerimizi okudunuz mu? Evet ise soruyu biraz daha açabilir misiniz?

  • Mehmet Doğan dedi ki:

    Şö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.

  • Serkan Ersan dedi ki:

    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

  • İlyas DEMİRTAŞ dedi ki:

    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.

  • admin dedi ki:

    Teşekkürler İlyas, düzeltmeyi yaptım.

  • Harun dedi ki:

    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

  • admin dedi ki:

    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.

  • Harun dedi ki:

    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?

  • Gürhan ÇOBAN dedi ki:

    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?

  • admin dedi ki:

    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]

  • Gürhan ÇOBAN dedi ki:

    Merhabalar;

    Malesef dediğiniz şekilde yaptıgımda “500 interval server Error” almaktayım.

  • admin dedi ki:

    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.

  • Gürhan ÇOBAN dedi ki:

    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!

Yorum yaz, yada kendi sitende trackback (Geri besleme) olarak ekle. Ayrıca RSS ile bu konuya üye olabilirsin. .

Nazik olun. Temiz tutun. Konu dışına çıkmayın. Spam yaratmayın.

Bu tagları kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bloğumuz gavatarı desteklemektedir. Kendi gavatarınızı edinmek için lütfen Gravatar a üye olun.