Üye Kayıt Üye Giriş

Ajax İle Filtreleme


Ajax İle Filtreleme

Dosyalar
Bu uygulamada anasayfayı oluşturan index.php, filitrelemenin yapıldığı filitrele.php, oyuncuların özelliklerini göstermek istediğim oyuncu.php dosyası ve eyceks kütüphanesi içindeki dosyalar (loading.gif , eyceks.js) bulunmaktadır .

Başlıyoruz . . .
İlk olarak uygulamamıza filitrenin nasıl edileceği konusunda karar vermemiz lazım. Bu uygulamada aynı zamanda ajax'te Dinamik Formları da kullanmış olacağım. Biliyorsunuz ajax'in diğer bir güzel özelliği ise Dinamik Formlar'dır. Dinamik formdan kastım isteğimize o anda karşılık verecek olan formlarlardır. Dinamik formlarla ilgili AJAX Ne Gibi Durumlarda Kullanılmalı? başlıklı yazıya da bakabilirsiniz. Neyse konuyu fazla uzatmadan hemen ilk bölüme geçiyorum.

Filitreleme formumuz :
PLAIN TEXTPHP:
<form id="form1" name="form1" method="post" action="javascript:void(0)">

<select name="takimlar" onchange="hangi_takim()">
<option value="0">Takımlar</option>
<option value="1">Galatasaray</option>
<option value="2">Fenerbahçe</option>
<option value="3">Beşiktaş</option>
</select>
</form>


Şimdi bu formu eyceks kütüphanesi ile filitre.php'ye göndermek istiyorum. Hepimiz eyceks kütüphanesinin nasıl çalıştığını biliriz. Bunu da ek olarak yazayım.

Eyceks ile filitre.php ye gönderme :
PLAIN TEXTPHP:
function hangi_takim(){

var takimlar = document.form1.takimlar.value

var sc = 'takimlar='+ fc_(takimlar)

JXP(1, 'takim_goster', 'filitrele.php', sc)

}


Evet şimdi sıra sistemden herhangi bir takımı seçtiğimizde bize o takımın oyuncularından bazılarını nasıl getirebileceğimizde. Bu iş filitre.php'de bitiyor tabii ki. Ben oyuncuları gosterdikten sonra bir kez daha o oyuncular arasından seçim yaptırarak oyuncu hakkında kısa ve öz bir bilgiyi ekranda göstermek istiyorum. Onun için filitre.php'de de biraz farklılık yapacağım.

filitre.php dosyasındayız :
PLAIN TEXTPHP:
<?
$takim= $_POST['takimlar'];
?>

<form id="form2" name="form2" method="post" action="javascript:void(0)">

<?
if($takim==1){
?>

<select name="oyuncular" onchange="hangi_oyuncu()">
<option value="">Oyuncu Seciniz..</option>
<option value="1">Necati Ates</option>
<option value="2">Hakan Sukur</option>
<option value="3">Umit Davala</option>
</select>

<?
}elseif($takim==2){
?>

<select name="oyuncular" onchange="hangi_oyuncu()">
<option value="">Oyuncu Seciniz..</option>
<option value="1">Appiah </option>
<option value="2">Serkan</option>
<option value="3">M.Yozgatli</option>
</select>

<?
}elseif($takim==3){
?>

<select name="takimlar" onchange="hangi_oyuncu()">
<option value="">Oyuncu Seciniz..</option>
<option value="1">Vedran Runje</option>
<option value="2">Jose Kleberson Pereira</option>
<option value="3">Deivson Rogerio Da Silva</option>
</select>

<?
}elseif($takim=="0"){echo "<font color=\"blue\">Herhangi Bir Takim Secmediniz !</font>";

} else {echo "<font color=\"red\"><b>Hata ! </b></font>"; }
?>

</form>

filitre.php'de ise şu şekilde bir olay izledim. 1. Takımı seçerse şu futbolcuları sırala, 2. takımı seçerse şu futbolcuları sırala tarzında. Yine üzerine bastırarak belirtmek istiyorum. Amaç sadece mantık. İşin içine veritabanı da girince inanılmaz güzel, zevkli ve estetik hale getirebilirsiniz olayı.

filitre.php'de dikkat etmeniz gereken olay şu. Benim 3. bir aşama daha istemem. Yani Oyuncular hakkında kısa ve öz bir bilgi. Onun için tüm forumları ilk formumuz gibi düzenledim filitre.html içine çağırdıgımızda eyceks ile yine kodlar çalıştıracağız. Bu formların OnChange özelliğine dikkat edin ." hangi_oyuncu() " Görüyorsunuz değıl mi? Şimdi filitre.html de hangi_takim() altına bir de hangi_oyuncu() fonksiyonu yazmamız lazım. O da şu şekilde olacak:

hangi_oyuncu() fonksiyonu :
PLAIN TEXTPHP:
function hangi_oyuncu(){

var oyuncular = document.form2.oyuncular.value

var sc = 'oyuncular='+ fc_(oyuncular)

JXP(1, 'oyuncu_goster', 'oyuncu.php', sc)

}

İşte bu fonksiyonu aynı javascript bloğumuz içine yazıyoruz Çağırdığımızda ise eyceks kütüphanesini kullananların bildiği gibi oyuncu.php'nin çıktısı, ID'si "oyuncu_goster" olan bir DIV alanının içerisine yazdırılacak.

oyuncu.php dosyası :
PLAIN TEXTPHP:
<?
$oyuncu= $_POST['oyuncular'];
?>

<?
if($oyuncu==1){
?>

Bu Seçtiğiniz Oyuncu 1 numaralı bir oyuncudur.

<?
}elseif($oyuncu==2){
?>

Siz şimdi 2 numaralı oyuncuyu seçtiniz.

<?
} else if ($oyuncu==3){
?>

3 Numaralı oyuncuyu seçtiniz !

<?

}elseif($oyuncu=="0"){echo "<font color=\"blue\">Herhangi Bir Takim Secmediniz !</font>";

}else{echo "<font color=\"red\"><b>Hata ! </b></font>"; }

?>

Sonuç :
İşte birkez daha ajax ile php birleşince neler yapabiliyor bunu gördük.

Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

Yorum Yapabilmek İçin Üye Girişi Yapmanız Gerekmektedir.

ETİKETLER