http://localhost/ci_blog/welcome/hesapla/sayi1/sayi2/islem
Url mizden de anlaşıldığı gibi sayi1,sayi2,islem bizim parametrelerimiz.Urlden gelen parametreleri almak için 2 yöntem bulunmaktadır.Bunun birincisi fonksiyonumuzu aşağıdaki gibi değiştiriyoruz.
public function hesapla($sayi1,$sayi2,$islem) { echo "sayi1=".$sayi1." islem= ".$islem." sayi2= ".$sayi2; }url mize aşağıdaki gibi değiştirip çalıştırsak çıktımız ekranda gözükecektir.
http://localhost/ci_blog/welcome/hesapla/5/10/toplama
Şimdi gelen değerlere örneğin toplama ise toplama çıkarma ise çıkarma yaptırıp sonucu ekrana yazdıralım.Bunun için fonksiyonumuzu aşağıdaki gibi değiştiriyoruz.
public function hesapla($sayi1,$sayi2,$islem) { if($islem=="toplama"){ echo $sayi1." + ".$sayi2."=".($sayi1+$sayi2); } if($islem=="cikarma"){ echo $sayi1." - ".$sayi2."=".($sayi1-$sayi2); } if($islem=="carpma"){ echo $sayi1." x ".$sayi2."=".($sayi1*$sayi2); } if($islem=="bolme"){ echo $sayi1." / ".$sayi2."=".($sayi1/$sayi2); } }
Url mizi değiştirip çıktıları inceliyoruz.Gördüğünüz gibi urlmizi ve işlemi yazarak sonuçları ekranda yazdırmış olduk.
İkinci yöntem de uri sınıfımızın segment() metodunu kullanmaktır.İlk olarak uri sınıfının kullanımından biraz bahsedelim.Kullanımı aşağıdaki gibidir.segment() metoduna bir sayı yazarak çalışır.İlk olarak yeni bir hesapla2() metot oluşturuyoruz ve metodumuzun içinde segmet e parametre olarak 0 yazıyoruz ekrana yazıdırıyoruz.
public function hesapla2(){
echo $this->uri->segment(0);
}
çıktımız:public function hesapla2(){
echo $this->uri->segment(1);
}
çıktımız:Gördüğünüz gibi ekranda welcome yazdı.Yani demekki segment metodu 1. indis den başlıyomuş ve ilk indis bizim controler sınıfımızın ismini yazdı.Şimdi segment metotunun içine 2 ,3,4,5 yazarak çıktılara bakalım.
çıktılarımız:
Sizinde anladığınız gibi 2 yazdığımızda controler sınıfımızdaki metot ismini yazdı.Diğer 3,4,5 bizim parametrelerimiz.yani kısacası segmet metodunda parametrelerimiz 3 den başlıyor ve kaç tane varsa ona göre artıyor.Son olarak hesapla2() fonksiyonumuzu da üsteki gibi yazdığımız işleme göre hesaplaması ve ekran yazdırması için aşağıdaki gibi değiştiriyoruz.
public function hesapla2(){ $sayi1=$this->uri->segment(3); $sayi2=$this->uri->segment(4); $islem=$this->uri->segment(5); if($islem=="toplama"){ echo $sayi1." + ".$sayi2."=".($sayi1+$sayi2); } if($islem=="cikarma"){ echo $sayi1." - ".$sayi2."=".($sayi1-$sayi2); } if($islem=="carpma"){ echo $sayi1." x ".$sayi2."=".($sayi1*$sayi2); } if($islem=="bolme"){ echo $sayi1." / ".$sayi2."=".($sayi1/$sayi2); } }
Welcome controler sınıfımızın tüm kodları:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Welcome extends CI_Controller { //sınıfımızın yapıcı fonksiyonu public function __construct() { //ilk önce üst sınıfın yapıcı fonksiyonu çağrılır parent::__construct(); } public function index() { //url ye controlerımızn ismi yazıldığında ilk olarak index metodu çağrılır. $this->load->view('welcome_message'); } public function hesapla2(){ $sayi1=$this->uri->segment(3); $sayi2=$this->uri->segment(4); $islem=$this->uri->segment(5); if($islem=="toplama"){ echo $sayi1." + ".$sayi2."=".($sayi1+$sayi2); } if($islem=="cikarma"){ echo $sayi1." - ".$sayi2."=".($sayi1-$sayi2); } if($islem=="carpma"){ echo $sayi1." x ".$sayi2."=".($sayi1*$sayi2); } if($islem=="bolme"){ echo $sayi1." / ".$sayi2."=".($sayi1/$sayi2); } } public function hesapla($sayi1,$sayi2,$islem) { if($islem=="toplama"){ echo $sayi1." + ".$sayi2."=".($sayi1+$sayi2); } if($islem=="cikarma"){ echo $sayi1." - ".$sayi2."=".($sayi1-$sayi2); } if($islem=="carpma"){ echo $sayi1." x ".$sayi2."=".($sayi1*$sayi2); } if($islem=="bolme"){ echo $sayi1." / ".$sayi2."=".($sayi1/$sayi2); } } } ?>
Umarım faydalı olmuştur.Sonraki dersimizde görüşmek üzere.
Hiç yorum yok:
Yorum Gönder