PHP ile İnternet Programlama

Benzer belgeler
Facebook connect ile kullanıcı giriş çıkış

Interprise. Ülker İletişim Web Servisi. Bu doküman Ülker iletişim web servisi hakkında teknik açıklamaları içerir. İletişim web servisi web adresi :

Ekran Çıktısı. FONT-WEIGHT: bold; COLOR: #00688F; FONT-FAMILY: Tahoma, Arial, sans-serif; style="text-decoration none" }

HTML & CSS. Öğr.Gör. M.Ersin AKAY

3-Hafta Genel Sayfa Yapısı. Semantik Web Nedir? SEO Nedir? Sayfa Başlığı (Title) Konu Başlıkları (Heading) Genel Sayfa Düzeni

Tek dosyalı projeler (siteler) üretmek

PHP ile İnternet Programlama

<html> <head> <title>sayfa Başlığı</title> </head> <body> Bu benim ilk sayfam <b>bu metin koyu</b> </body> </html>

Google Search API ile ajax arama

MAKÜ YAZ OKULU YARDIM DOKÜMANI 1. Yaz Okulu Ön Hazırlık İşlemleri (Yaz Dönemi Oidb tarafından aktifleştirildikten sonra) Son aktif ders kodlarının

T.C. MİLLİ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ

Temel Bilgisayar Terimleri Yrd. Doç. Dr. Devkan Kaleci

Evrak Ekle. Kurum İçi Giden Evrak Ekleme. Kırmızı renker; doldurulması zorunlu alanları ifade etmektedir. İleri Geri tarihli işlem yapılamamaktadır.

SÜRE BİLİŞİM TEKNOLOJİLERİ ÜNİTE 1: : BİLGİ VE TEKNOLOJİ DERS SAATİ: 7

Nebim Winner Ayarları

Karabük Üniversitesi, Mühendislik Fakültesi...

VEZNE PROGRAMINDA POSTA ÜCRETİ İLE İLGİLİ YAPILAN DÜZENLEMELER (Vezne Sürüm: )

in Kullanımı tamamlamış gerçekleştirmiş

KolayOfis Başlangıç Rehberi Kısa Mesaj Yönetimi

SAYIN MÜŞTERİMİZ. C:\ebyn\Beyannameler\Bilset\ \K XML (buradaki => Firmanın Vergi Numarasıdır.)

Metin Text Kutuları. Metin kutusu oluşturmak için <input> tagı kullanılır.

Digifresh Kullanım Kılavuzu

Özcan Acar 2009 Kurumsal Java.com

1. Mesaj Tipi ve Mesaj Fonksiyonu Bazında Bildirim Mail Adresi Tanımlama Đşlemleri

SÜRE BĠLĠġĠM TEKNOLOJĠLERĠ ÜNĠTE 1: ĠLETĠġĠM DERS SAATĠ: 1. Gelecekteki bilişim teknoloji

Tasarım Raporu. Grup İsmi. Yasemin ÇALIK, Fatih KAÇAK. Kısa Özet

ULAKBİM Danışma Hizmetlerinde Yeni Uygulamalar: Makale İstek Sistemi ve WOS Atıf İndeksleri Yayın Sayıları Tarama Robotu

1.PROGRAMLAMAYA GİRİŞ


Danışma Kurulu Tüzüğü

WEB SAP (ORION) STAJ BAŞVURU KULLANICI DÖKÜMANTASYONU. Süheyla GÜVEN

K12NET Eğitim Yönetim Sistemi

AĞ ÜZERİNDEN YAZICI ve TARAYICI TANIMLAMA KLAVUZU

Etkinliklere katılım, ücretli ve kontenjan ile sınırlıdır.

DÖNER SERMAYE MALİ YÖNETİM SİSTEMİ

ENF TEMEL BİLGİSAYAR BİLİMLERİ Eğitim/Öğretim Yılı Bahar Dönemi DÖNEM SONU LAB. ÖDEV TESLİM DUYURUSU

Şekil 1. Sistem Açılış Sayfası

HTML 6. Bölüm. Doç. Dr. İsmail Rakıp Karaş Dersin Course Page:

BİLGİ TEKNOLOJİLERİ VE İLETİŞİM KURULU KARARI

DOKÜMAN YÖNETİM SİSTEMİ KULLANIMI GELEN EVRAK

Eğitim No/Eğitim Adı: 14-E Tedarikçi Barkod Uygulaması

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI YÜZEY DOLDURMA TEKNİKLERİ

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

Yukarıdaki örnekte görüldüğü üzere her php komut satırı noktalı virgül (;) ile biter.

İSTANBUL TEKNİK ÜNİVERSİTESİ MİMARLIK FAKÜLTESİ, MİMARLIK BÖLÜMÜ YARI ZAMANLI ÖĞRETİM ÜYELERİ BİLGİ KİTAPÇIĞI

Şekil 1.2:Programa giriş penceresi

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

Şikayet Yönetimi. 1.1 Müşteri Kartı

Yedi Karat Kullanım Klavuzu. Yedi Karat nedir? Neden Karat?

Bölgeler kullanarak yer çekimini kaldırabilir, sisli ortamlar yaratabilirsiniz.

Anonim Verilerin Lenovo ile Paylaşılması. İçindekiler. Harmony

ACENTE PORTAL QUICKRES/TROYA ACENTE BAŞVURU KILAVUZU

PHP ile İnternet Programlama

BİT ini Kullanarak Bilgiye Ulaşma ve Biçimlendirme (web tarayıcıları, eklentiler, arama motorları, ansiklopediler, çevrimiçi kütüphaneler ve sanal

B02.8 Bölüm Değerlendirmeleri ve Özet

ONLİNE KATALOG TARAMA (YORDAM KÜTÜPHANE OTOMASYON PROGRAMI)

YÜKSEKÖĞRETİM KURUMLARI ENGELLİLER DANIŞMA VE KOORDİNASYON YÖNETMELİĞİ (1) BİRİNCİ BÖLÜM. Amaç, Kapsam, Dayanak ve Tanımlar

OPERATÖRLER BÖLÜM Giriş Aritmetik Operatörler

YATIRIM FONU ALIM SATIM İŞLEMLERİ KULLANICI KILAVUZU

Yıllık İş İstatistikleri Sanayi ve Hizmet Soru Kağıdı Hazırlanışı

Enstitü Başvuru Sistemi Kullanım Kılavuzu

Anaokulu /aile yuvası anketi 2015

PHP ile İnternet Programlama

Uzem Eğitmen Girişi. Şekil 1. Sisteme girdikten sonra Şekil 2 deki ekran karşımıza çıkacak. Bu ekrandaki adımları kısaca tanıyalım.

HTML herhangi bir text (metin) editörü (Notepad, Word, Notepad++, Dreamweaver,...) ile hazırlanabilir. Bizler Notepad++ üzerinde kodlama yapacağız.

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 4

HALK SAĞLIĞI ANABİLİM DALI İş Sağlığı Programı

OFİS 365 ÖĞRENCİ MAİL SİSTEMİ KULLANIM KLAVUZU. Office 365

İŞLEM BASAMAKLARI, KARŞILAŞILABİLECEK HATALAR ve ÇÖZÜM YOLLARI

KAMU İHALE KANUNUNA GÖRE İHALE EDİLEN PERSONEL ÇALIŞTIRILMASINA DAYALI HİZMET ALIMLARI KAPSAMINDA İSTİHDAM EDİLEN İŞÇİLERİN KIDEM TAZMİNATLARININ

ÖĞRENME FAALĠYETĠ GELĠġMĠġ ÖZELLĠKLER

YÖNETMELİK. a) Basamak kontrolü: On beş basamaklı IMEI numarasının son basamağının doğruluğunun kontrolünü,

AFYON KOCATEPE ÜNİVERSİTESİ LİSANSÜSTÜ UZAKTAN EĞİTİM YÖNERGESİ

3. Metin ve Görünüm Etiketleri

MikroÖdeme Servis Dökümanı

TEHLİKELİ ATIK BEYAN FORMU

İMZALAMA ARACI. Kullanım Kılavuzu. Nisan 2016 ANKARA. İmzalama Aracı Kullanım Kılavuzu Nisan 2016 Versiyon : 1.0 1/15

EĞİTİM BİLİMİNE GİRİŞ 1. Ders- Eğitimin Temel Kavramları. Yrd. Doç. Dr. Melike YİĞİT KOYUNKAYA

5510 sayılı SGK kanunu hakkında duyurular

T.C. NUH NACİ YAZGAN ÜNİVERSİTESİ YAZILIM KULÜBÜ TÜZÜĞÜ. BİRİNCİ BÖLÜM Kuruluş Gerekçesi, Amaç, Kapsam, Dayanak ve Tanımlar

T.C. EGE ÜNİVERSİTESİ URLA DENİZCİLİK MESLEK YÜKSEKOKULU STAJ YÖNERGESİ

MICROCHIP USB 2.0 PIC PROGRAMLAYICI

Çevrimiçi paylaşım 3.1. Baskı 1

SÜREÇ YÖNETİMİ VE SÜREÇ İYİLEŞTİRME H.Ömer Gülseren > ogulseren@gmail.com

E-OKUL TASDİKNAME GİRİŞİ

Bilgisayar Uygulamaları PSİ105

1.1 HKMOBĐS PROJESĐNE GĐRĐŞ

SİRKÜLER İstanbul, Sayı: 2016/01. Konu: E-DEFTER GÖRÜNTÜLEYİCİ PROGRAMI İLE SÖZ KONUSU PROGRAMA İLİŞKİN KULLANIM KILAVUZU YAYINLANMIŞTIR

360- ÖDENECEK VERGİ VE FONLAR HESABINA (GELİR VERGİSİ KESİNTİSİ) İLİŞKİN say2000i UYGULAMASI

PREANALİTİK EVRENİN DEĞERLENDİRİLMESİNDE LABORATUVAR BİLGİ YÖNETİM SİSTEMLERİNİN ROLÜ. Oğuzhan ZENGİ Bağcılar Eğitim ve Araştırma Hastanesi

ÖĞRENME FAALĠYETĠ 6 ÖĞRENME FAALĠYETĠ NESNE ĠġLEMLERĠ

T.C. MİLLÎ EĞİTİM BAKANLIĞI Müsteşarlığı. Sayı : B.O8.0.MÜB.O / /06/2007

Braille Star 40 Başvuru Kitapçığı Sürüm 4.0 Lütfen bu başvuru kitapçığıyla birlikte paketinizde bulunan kullanıcı kılavuzunu da gözden geçirin.

1 Aralık E-Beyanname Modülünde Yapılan İşlemler

T.C. İZMİR KÂTİP ÇELEBİ ÜNİVERSİTESİ Öğrenci İşleri Daire Başkanlığı 2015 YILI KALİTE HEDEF PLANI

Vodafone Mobil Form Tanıtım Sunumu

Öğrenci Web(Öğretim Üyesi) Verdiğim Dersler Not İşlemleri Danışmanlık İşlemleri Lisansüstü İşlemleri Bologna Süreci

1 BOOTSTRAP NEDİR? 1 Bootstrap Nedir? 1 Bootstrap Dosyalarının Siteye Dahil Edilmesi 2 Bootstrap ın Sağladığı Kolaylıklar 3

SU ÜRÜNLER B LG S STEM (SUB S)

Transkript:

PHP ile İnternet Programlama Doç.Dr. Gazi Üniversitesi Gazi Eğitim Fakültesi Bilgisayar ve Öğretim Teknolojileri Eğitimi Bölümü 6. BÖLÜM: AJAX Uygulamaları

Neden AJAX? Dördüncü bölümde yer alan Veritabanı-bağlantılı Sayfa Yenileme bölümünde, veritabanından çekilen bilgiler kullanılarak etkin sayfa üzerindeki bilgilerde değişiklik yapılmıştı. Bu durum genellikle kullanıcı tarafından yapılan bir seçimin (bir seçim kutusunun işaretlenmesi ya da listeden bir seçeneğin seçilmesi gibi) neticesinde belirli bir nesnenin (bir combobox gibi) dinamik olarak yeni seçeneklerle doldurulması şeklinde gerçekleşir. İşlem, sayfayı yenileyen bir JavaScript fonksiyonunun, doldurulacak nesne tarafından tetiklenmesi ile yürütülmektedir.

Neden AJAX? Bu işlemin dezavantajı, sayfanın yenilenmesine bağlı olarak ortaya çıkan, sayfa üzerindeki alanların daha önceden sahip oldukları değerleri kaybetmeleridir. Her ne kadar bu problem alanlara eski değerlerinin tekrar atanması ile çözülmeye çalışılsa da, formlar üzerindeki alanların sayısı arttığında bu yöntemin uygulanması oldukça zahmetli, hatta zaman zaman olanaksız hale gelmektedir.

Neden AJAX? AJAX teknolojisi, bazı JavaScript fonksiyonları yardımı ile sayfa üzerindeki alanlardan istenilenleri üzerinde bir yenileme gerçekleştirir. Böylece sayfa yeniden yüklenmediğinden, diğer alanlar ya da sayfa üzerinde topyekun yenilemeye bağlı olarak oluşacak sorunlardan da kurtulmuş oluruz. AJAX uygulamalarında kullanılmak üzere geliştirilmiş çeşitli JavaScript kütüphaneleri mevcuttur. Biz, bu bölüm kapsamında kullanacağımız fonksiyonlar için, http://docs.jquery.com/main_page adresinde yer alan jquery kütüphanesini kullanacağız. Bu sitedeki jquery.js dosyasının indirilerek uygulama klasörümüze kopyalanması, örneklerimizi çalıştırmak için yeterli olacaktır.

İlk örneğimizde tetikleme işlemini gerçekleştirecek olan olay, veritabanında yer alan bir tablodan fakülte adları ile doldurulacak olan fakülte seçim kutusudur. <?php require_once('baglanti.php');?> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> $(document).ready(function() $('#fakulteler').change(function() var fakulte = $("#fakulteler option:selected").attr('value'); $('#bolumler').load('verial.php?fakulte='+fakulte); ); ); </script> </head> <body> <p> Adı : <input type="text" name="textfield1" id="textfield1" /> </p>

İlk örneğimizde tetikleme işlemini gerçekleştirecek olan olay, veritabanında yer alan bir tablodan fakülte adları ile doldurulacak olan fakülte seçim kutusudur. <p> Soyadı : <input type="text" name="textfield2" id="textfield2" /> </p> <select name="fakulteler" id="fakulteler"> <option value="">-- Fakülte Seçiniz --</option> <?php $sql = "SELECT * FROM fakulteler ORDER BY fakulte_adi ASC"; $sonuc = mysql_query($sql); while ($veri = mysql_fetch_array($sonuc)) echo "<option value=$veri[fakulte_kodu]>$veri[fakulte_adi]</option>";?> </select> <select name="bolumler" id="bolumler"> <option value="-1">-- Önce Fakülte Seçiniz --</option> </select> </body> </html>

$('#fakulteler').change(function() var fakulte = $("#fakulteler option:selected").attr('value'); $('#bolumler').load('verial.php?fakulte='+fakulte); ifadesi, id bilgisi fakulteler olan nesnede (ki bu fakülte adları ile doldurulan combobox nesnesidir) herhangi bir değişiklik meydana geldiğinde, id bilgisi bolumler olan nesne (seçilen fakülte altındaki bölüm adları ile doldurulacak combobox) üzerinden verial.php dosyasının yüklenmesini sağlamaktadır. verial.php dosyasının içeriği sonraki slayttaki gibi olacaktır.

<?php require_once('baglanti.php'); $sql = "SELECT * FROM bolumler WHERE fakulte_kodu = '".$_GET['fakulte']."' ORDER BY bolum_adi ASC"; $sonuc = mysql_query($sql); while ($veri = mysql_fetch_array($sonuc)) echo "<option value=$veri[bolum_kodu]>$veri[bolum_adi]</option>";?>

verial.php dosyasına bilgi aktarımı, fakulte adlı javascript değişkeni aracılığı ile internet tarayıcısının adres çubuğu üzerinden gerçekleştirilmektedir. Bu dosya ise kendisine gelen fakülte kodunu kullanarak veritabanından bu fakülte altındaki bölümleri çekmekte, daha sonra bunları option etiketleri olarak düzenlemektedir. Oluşturulan option lar, orijinal dosyada yer alan (index.php) bolumler combobox ı için seçenekleri oluştururlar.

<?php require_once('baglanti.php'); $sql = "SELECT * FROM bolumler WHERE fakulte_kodu = '".$_GET['fakulte']."' ORDER BY bolum_adi ASC"; $sonuc = mysql_query($sql); while ($veri = mysql_fetch_array($sonuc)) echo "<option value=$veri[bolum_kodu]>$veri[bolum_adi]</option>";?>

Son olarak, kullanılan baglanti.php dosyasının içeriği ise aşağıdaki gibi olacaktır. <?php mysql_connect('localhost','root', ''); mysql_select_db('fakulte_bolum'); mysql_query("set NAMES 'utf8'");?>

İkinci örneğimizde, seçilen öğrenci numarasına göre o öğrencinin adı, soyadı ve aldığı dersler veritabanından çekilmektedir. İlk örnekten farklı olarak bu durumda, öğrenci numarasının seçilmesi ile tetiklenerek üç farklı bilgi anlık olarak getirilmektedir. Bu, bilgilerin yazılacakları nesnelerin, index.php dosyasında birer id ile etiketlenen div türündeki alanların içerisine yerleştirilmeleri ile mümkün olmuştur.

<?php mysql_connect('localhost','root', ''); mysql_select_db('dersler'); mysql_query("set NAMES 'utf8'");?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>dersler</title> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> $(document).ready(function() $('#ogrno').change(function() var ogrno = $("#ogrno option:selected").attr('value'); $('#ad').load('verial.php?islem=ad&ogrno='+ogrno); $('#soyad').load('verial.php?islem=soyad&ogrno='+ogrno); $('#dersler').load('verial.php?islem=dersler&ogrno='+ogrno); ); </script> </head> );

<body> <p> Öğrenci Numarası : <select name="ogrno" id="ogrno"> <option value="-1">-- Seçiniz --</option> <?php $sql = "SELECT ogrno FROM tablo1"; $sonuc = mysql_query($sql); while ($veri = mysql_fetch_array($sonuc)) echo "<option value=$veri[ogrno]>$veri[ogrno]</option>";?> </select> </p> <table width="400" border="0"> <tr> <td width="112"><div align="right">adı :</div></td> <td width="272"><div id="ad"></div></td> </tr> <tr> <td><div align="right">soyadı :</div></td> <td><div id="soyad"></div></td> </tr> <tr> <td valign="top"><div align="right">dersleri :</div></td> <td><select name="dersler" id="dersler" size="10"> <option value=""></option> </select> </td> </tr> </table></body></html>

verial.php dosyası, hangi bilgiyi geri göndereceğine kendisine gelen islem parametresini kullanarak karar vermektedir. <?php mysql_connect('localhost','root', ''); mysql_select_db('dersler'); mysql_query("set NAMES 'utf8'"); $islem=$_get['islem']; $sql = "SELECT * FROM tablo1 WHERE ogrno = '".$_GET['ogrno']."'"; $sonuc = mysql_query($sql); while ($veri = mysql_fetch_array($sonuc)) $ad=$veri[ad]; $soyad=$veri[soyad]; $dersler_array = explode(",", $veri[dersler]); if ($islem=='ad') echo "<input type='text' name='adtext' id='adtext' value=$ad>" elseif ($islem=='soyad') echo "<input type='text' name='soyadtext' id='soyadtext' value=$ad>"; else for ($k=0;$k<count($dersler_array);$k++) echo "<option value=$dersler_array[$k]>$dersler_array[$k]</option>";?>

Bir sonraki örneğimiz, sinema adlı bir veritabanında yer alan film bilgilerini, seçilen film adına göre ekrana getirmektedir. Bu örneğin öncekilerden farklı özelliği, filme ait yönetmen ve yapım yılı bilgilerinin yanı sıra, yıldız sayısı ve poster gibi görsel bilgileri de resim olarak ekrana yüklemesidir.

<?php mysql_connect('localhost','root', ''); mysql_select_db('sinema'); mysql_query("set NAMES 'utf8'");?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>sinema Eleştirmeni</title> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> $(document).ready(function() $('#film_adi').change(function() var film_no = $("#film_adi option:selected").attr('value'); $('#yonetmen').load('verial.php?islem=yonetmen&film_no='+film_no); $('#yapim_yili').load('verial.php?islem=yapim_yili&film_no='+film_no); $('#yildiz').load('verial.php?islem=yildiz&film_no='+film_no); $('#poster').load('verial.php?islem=poster&film_no='+film_no); ); ); </script> </head>

<body> <table width="550" border="1"> <tr> <td><div align="right"><strong>filmin Adı : </strong></div></td> <td colspan="5"> <select size="1" name="film_adi" id="film_adi"> <option value="-1">-- Seçiniz --</option> <?php $sql = "SELECT film_no,film_adi FROM filmler"; $sonuc = mysql_query($sql); while ($veri = mysql_fetch_array($sonuc)) echo "<option value=$veri[film_no]>$veri[film_adi]</option>";?> </select> </td> </tr> <tr> <td><div align="right"><strong>yönetmeni : </strong></div></td> <td colspan="5"><div id="yonetmen"></div></td> </tr>

<tr> <td><div align="right"><strong>yapım Yılı :</strong></div></td> <td colspan="5"> <div id="yapim_yili"></div> </td> </tr> <tr> <td><div align="right"><strong>yıldız Sayısı :</strong></div></td> <td> <div id="yildiz"> <img src="dolu0.jpg" width="250" height="50" /> </div> </td> </tr> </table> <table width="551" border="3" cellspacing="3" cellpadding="3"> <tr> <td width="531"><center> <strong>poster </strong> </center></td> </tr> <tr> <td> <center>

<div id="poster"> </div> </center> </td> </tr> </table> <p> </p> </body> </html>

verial.php dosyası, hangi bilgiyi geri göndereceğine yine kendisine gelen islem parametresini kullanarak karar vermektedir. <?php mysql_connect('localhost','root', ''); mysql_select_db('sinema'); mysql_query("set NAMES 'utf8'"); $islem=$_get['islem']; $sql = "SELECT * FROM filmler WHERE film_no = '".$_GET['film_no']."'"; $sonuc = mysql_query($sql); while ($veri = mysql_fetch_array($sonuc)) $yonetmen=$veri[yonetmen]; $yapim_yili=$veri[yapim_yili]; $yildiz_sayisi=$veri[yildiz_sayisi]; $poster=$veri[poster]; if ($islem=='yonetmen') echo "<input type='text' name='yonetmen' id='yonetmen' value='$yonetmen'>"; else if ($islem=='yapim_yili') echo "<input type='text' name='yapim_yili' id='yapim_yili' value='$yapim_yili'>";

?> else if ($islem=='yildiz') if ($yildiz_sayisi==1) echo "<img src='dolu1.jpg' width='250' height='50'>"; else if ($yildiz_sayisi==2) echo "<img src='dolu2.jpg' width='250' height='50'>"; else if ($yildiz_sayisi==3) echo "<img src='dolu3.jpg' width='250' height='50'>"; else if ($yildiz_sayisi==4) echo "<img src='dolu4.jpg' width='250' height='50'>"; else echo "<img src='dolu5.jpg' width='250' height='50'>"; else echo "<img src='$poster' width='300' height='470'>";

Son örneğimizde ise, yine jquery kütüphanesinde yer alan treeview fonksiyonları kullanılarak veritabanı-bağlantılı dinamik bir ağaç yapısı oluşturulmaktadır. Daha sonra bu ağaç yapısı üzerinde tıklanan kayda ait bilgiler sağ tarafta anlık olarak görüntülenmektedir. Öncelikle anahtar kelimenin girildiği HTML formumuzu tasarlayalım.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1- transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>treeview & AJAX</title> </head> <body> <form id="form1" name="form1" method="post" action="tree_ornek.php"> <label> <input name="anahtar" type="text" /> <input name="button" type="submit" value="gönder"/> </label> </form> </body> </html>

İkinci olarak formdan gönderilen anahtar kelimeyi alarak bunu veritabanı tablomuzun ad alanında arayan ve bulduğu kayıtları kullanarak ağaç yapısını oluşturan PHP kodumuzu verelim: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>treeview & AJAX</title> </head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-9" /> <script src="lib/jquery.js" type="text/javascript"></script> <script src="lib/jquery.cookie.js" type="text/javascript"></script> <script src="lib/jquery.treeview.js" type="text/javascript"></script> <script type="text/javascript"> $(function() $("#browser").treeview( collapsed: true, unique: true, animated:"slow" ); );

function ara_verial(id) $('#no').load('ara_verial.php?islem=no&id='+id); $('#ad').load('ara_verial.php?islem=ad&id='+id); $('#soyad').load('ara_verial.php?islem=soyad&id='+id); $('#bilgiler').load('ara_verial.php?islem=bilgiler&id='+id); function temizle() for(i=0;i<=val('sayi');i++) $("#liste_" + i).css('background', 'none'); function degistir(gelenid) $("#liste_" + gelenid).css('background', '#CCCCCC'); </script> function val(gelenid) return document.getelementbyid(gelenid).value;

<body> <table width="100%" border="1"> <tr> <td width="31%"> <link rel="stylesheet" href="jquery.treeview.css" /> <div id="left2" style="overflow:auto; height:530px; width:268px"> <ul id="browser" class="filetree"> <?php mysql_connect('localhost','root', ''); mysql_select_db("tree_ornek"); $anahtar=$_post['anahtar']; //$strsql="select * FROM tablo1 WHERE bilgiler LIKE '%".$anahtar."%'"; $strsql="select * FROM tablo1 WHERE ad LIKE '%".$anahtar."%'"; $query=mysql_query($strsql); if(mysql_num_rows($query)!=0) echo "<ul>"; while($row=mysql_fetch_array($query)) echo "<li style=\"cursor:pointer\" onclick=\"ara_verial(".$row['id'].")\"><img src=\"file.gif\" />".$row['ad']." ".$row['soyad']."</li>";

echo "</ul>"; else echo "Girilen anahtar kelimeyi içeren herhangi bir kayıt bulunamamıştır."; echo "</li>";?> </ul> <input type="hidden" name="sayi" id="sayi" value="<?=$k?>" /> </div> <td width="67%" valign="top"> <table width="100%" border="1"> <tr> <td width="21%" align="right">no :</td> <td width="79%"><div id="no"></div></td> </tr> <tr> <td align="right">ad :</td> <td><div id="ad"></div></td> </tr> <tr> <td align="right">soyad :</td> <td><div id="soyad"></div></td> </tr> <tr> <td align="right">bilgiller :</td> <td><div id="bilgiler"></div></td> </tr> </table></td> <td width="2%"></td> </tr></table></body></html>

Önceki örneğimizdekine benzer olarak, tıklanan ağaç seçeneğine ait diğer bilgileri veritabanından getirerek ilgili alanlara (div) aktaracak ara_verial.php dosyasına ait kod ise aşağıdaki gibi olacaktır. <title>treeview & AJAX</title><?php mysql_connect('localhost','root', ''); mysql_select_db("tree_ornek"); $islem=$_get['islem']; $sql = "SELECT ad,soyad,bilgiler FROM tablo1 WHERE id = ".$_GET['id']; $sonuc = mysql_query($sql); while ($veri = mysql_fetch_array($sonuc)) $ad=$veri[ad]; $soyad=$veri[soyad]; $bilgiler=$veri[bilgiler]; if ($islem=='no') echo "<input type='text' name='no' id='no' value='$_get[id]' size='40'>";

else if ($islem=='ad') echo "<input type='text' name='ad' id='ad' value='$ad' size='40'>"; else if ($islem=='ogrenci_sayisi') echo "<input type='text' name='soyad' id='soyad' value='$soyad' size='40'>"; else echo "<textarea name='bilgiler' id='bilgiler' cols='50' rows='4'>$bilgiler</textarea>";?>