Mesajlar etiketlendi ajax

Ajax’a Giriş

Ajax, aslında Asynchronous JavaScript and XML’in kısaltılmış halidir. Ajax, ne bir dil, ne de bir kütüphanedir. Ajax, sadece bir yöntemin adıdır. Biz bu kitapta Ajax için xajax kütüphanesini ( http://xajax.sourceforge.net/ ) kullanacağız. Adresten xajax.inc.php dosyasını indirin. Neyse, Ajax’ı bu kadar popüler olmasının sebebi ise Gmail’de Ajax sisteminin çok profesyonel bir şekilde kullanılmasıdır. Ajax, hem web trafiğini azaltmakta, hem de hızı artırmaktadır.

Ajax Ne İşe Yarar?

Diyelim ki bir web sayfası var. Üst taraf, yan menüler ve ortada ana içerik. Siz ortada birşeyin değişmesini istiyorsunuz fakat linkle bütün sayfa değişiyor. Sadece oranın değişmesi için framelerden faydalanabilirsiniz. Onun dışında başka bir yol yoktu. Burada Ajax yardımımıza koşuyor. Yani kısaca sayfanın sadece bir kısmını değiştirmemizi sağlıyor.

1)Ajax’a Başlayalım

Ajax’ın ne olduğunu öğrendik. Şimdi de örnek bir uygulama yapacağız. Bu uygulamada kullanıcı metin kutusuna ne yazarsa, üstünde aynısı çıkacak.

Code:

<?php

include_once("xajax.inc.php");

function yazidegistir($yazi)

{

$objResponse = new xajaxResponse();

$objResponse->addAssign("div1","innerHTML", $yazi);

return $objResponse->getXML();

}

$xajax = new xajax();

$xajax -> registerFunctions("yazidegistir");

$xajax->processRequests();

$xajax->printJavascript();

?><title>Ajax</title> <h1 align="center">Ajax Denemesi</h1>

<div align="center" id="div1" name="div1">
<font face="Verdana"><b>Deneme Yazisi</b></font></div>

<div align="center">

<input type="text" name="yazi" onChange="xajax_yazidegistir( document.getElementById('yazi').value);">

</div>


İşte uygulamamız tamam. Peki burada ne yapıyoruz? İlk önce xajax kütüphanesini içeri alıyoruz. Sonra içeriği değiştirecek olan fonksiyonu yazıyoruz. Fonksiyonda hngi layer’ın ve neresini değiştireceğimizi belirtiyoruz. Fonksiyonu bitiriyoruz. Sonra xajax olayı başlatıyoruz. “yazidegistir” fonksiyonunu xajax fonksiyonu olarak tanımlıyoruz. Sonra çıktı üretmeden xajax’ın istekleri işlemesini sağladık. Sonra bunları JavaScript fonksiyonuna çevirdik. Sonra daha önce belirttiğimiz gibi bir div oluşturduk fakat id’si “div1″. Ardındn metin kutusunu yaptık ve değişirse fonksiyonu yerine getirmesini sağladık. Kod bundan ibaret.

Peki, biz sadece bunu mu yapıyoruz Ajax’la? Tabii ki hayır. Mesela renk de değiştirebiliriz. Nasıl olur?

1)

Code:

$objResponse->addAssign("div1","innerHTML", $yazi);


satırını
Code:

$objResponse->addAssign("div1","style.color", $yazi);


şeklinde değiştirin.

2)

Code:

<input type="text" name="yazi"
onChange
="xajax_yazidegistir(document.getElementById('yazi').value);">


satırını şu şekilde değiştirin:
Code:

<select id="colorselect" name="colorselect"
onchange
="xajax_yazidegistir( document.getElementById('colorselect').value);">

<option value="black" selected="selected">Siyah</option>

<option value="red">Kirmizi</option>

<option value="green">Yesil</option>

<option value="blue">Mavi</option>

<option value="lightblue">Acik Mavi</option>

<option value="lightgreen">Acik Yesil</option>

<option value="pink">Pembe</option>

<option value="orange">Turuncu</option>

</select>


Bu işlemler sonucu metin kutusu gidecek, yerine combo box gelecektir. Oradan seçtiğiniz renk ise yazının rengi olacaktır.

Tamam, biz böyle yaptık da, nasıl kullanırız biz bunu diyorsanız, işte size örnek:

Code:

<?php

include_once("xajax.inc.php");

function degistir($deger) {

if ($deger == 0) {

$text = "Burasi Ana Sayfa. Bir icerik seciniz";

} elseif ($deger == 1) {

$text = "Hakkimda bilgiler";

} elseif ($deger == 2) {

$text = "Resimlerim";

} elseif ($deger == 3) {

$text = "Ziyaretci defterim";

} else {

$text = "Bir icerik seciniz";

}

$objResponse = new xajaxResponse();

$objResponse->addAssign("div1","innerHTML",$text);

return $objResponse->getXML();

}

$xajax = new xajax();

$xajax->registerFunctions("degistir");

$xajax->processRequests();

$xajax->printJavascript();

?><center>

<p><a href="javascript:xajax_degistir(0)">Ana _fcksavedurl=""javascript:xajax_degistir(0)">Ana" _fcksavedurl=""javascript:xajax_degistir(0)">Ana" Sayfa</a> - <a href="javascript:xajax_degistir(1)">Hakkimda</a>

- <a href="javascript:xajax_degistir(2)">Resimler</a> - <a href="javascript:xajax_degistir(3)">Ziyaretci

Defteri</a></p>

</center>

<div align="center" id="div1" name="div1">Burasi Ana Sayfa. Bir icerik seciniz</div>


Örneğimiz bitti. Burada yukarıda bir menü, aşağıda da içerik olacaktır. Ajax çalışmalarına devam edin.

Kolay gelsin!

Yorum bırakın »

Ajax Ve Php ile Tab tuşuyla Sorgu Yaparak Form Kontrol !

İlk Önce Çook İyi Anlaşılabilmesi tek tek ve cook acıklayıcı bır sekılde yazmaya ozen gosterecegım .
İlk Adım
Kontrol Yapacağımız Bir Form yazıyoruz .

<from action=”islem.php” method=”get” name=”form1″>
<input type=”text” name=”kullanici_adi”>
<br>
<input type=”submit” name=”gonder” value=”Kontrol”>
</form>

Bu Şekilde Bir Form Ayarladık dıyelım sımdi kontrol butonuna bastıgımızda hıc bısey yook aynen çalışacak . Biz Burda yapacağımız şey kontrol butonuna basılmadan kullanici adı inputuna bir değer yazılıdıgında diğer inputa geçerken örneğin password inputuna geçerken o kullanıcı adını dbde kontrol etmesi ve var olup olmadıgına bakmasını var ıse bu kullanıcı adı kullanımda diye kullanıcıya bir uyarı vermesini istiyoruz . Öncelikle Eburhan Arkadaşımızın ejeyks.js adlı ajax ile veri gönderimine yarayan kütüphanesını indiriyoruz .

ejeyks.js kütüphanesini bu adresten indirebilirsiniz tıklayın ve indirin.

İkinci Adım  :
Sonra ejeyks.js içindeki kodları ya form kontolu yapacagımız form sayfasına cagırıyoruz yada içindekileri acıp dırek form kontrol sayfasına yazıyoruz .

Çağırma  :
<script language=”javascript” src=”ejeyks.js”></script>

İçine direk yazma  :

function AJAX() {
var ajax = false;

// Internet Explorer (5.0+)
try {
ajax = new ActiveXObject(“Msxml2.XMLHTTP”);
} catch (e) {

try {
ajax = new ActiveXObject(“Microsoft.XMLHTTP”);
} catch (e) {
ajax = false;
}

}

// Mozilla veya Safari
if ( !ajax && typeof XMLHttpRequest != ‘undefined’ ) {

try{
ajax = new XMLHttpRequest();
}catch(e) {
ajax = false;
}

}

// Diger
if ( !ajax && window.createRequest ) {

try{
ajax = window.createRequest();
}catch(e) {
ajax = false;
}

}

return ajax;
}

function JXG(yukleniyor, yer, dosya) {
ajax = new AJAX();

if ( ajax ) {
ajax.onreadystatechange = function () {};
ajax.abort();
}

ajax.open(‘GET’, dosya, true);
ajax.setRequestHeader(“If-Modified-Since”, “Sat, 1 Jan 2000 00:00:00 GMT”);
ajax.setRequestHeader(“Connection”, “close”);
ajax.send(null);

ajax.onreadystatechange = function () {
if( yukleniyor == 1 && yer != ‘no_id’ ) {
if( ajax.readyState == 1 || ajax.readyState == 2 || ajax.readyState == 3 ) {
var loading = ‘Kulanilabilirligine Bakiliyor  . . . ‘
document.getElementById(yer).innerHTML = loading;
}
}

if( ajax.readyState == 4 && yer != ‘no_id’ ) {
document.getElementById(yer).innerHTML = ajax.responseText;
function AJAX() {};

}
}
}

Şimdiye kadar formumuzdaki kullanici adı verisini userkontrol.php ye gondermek ıcın lazım olan kodları ayarladık .
Sıra Tab Tuşuna bastıgımızda işlemesi gereken kodlar ve forma eklenecek kodlarda …
Üçüncü Adım

function checkuser(){
var user = document.form1.kullanici_adi.value
var sc     = ‘userkontol.php?user=’+ user
JXG(1,’ warning ‘, sc)
document.form1.kullanici_adi.className = ‘classdegis’;
}

İşte bu kodlarla tabtuşuna basılıp password inputuna gecerken eyeks.js kutuphanesınıde kullanarak userkontrol.php dosyasına kullanıcı adı valuesını  ” GET ” olarak yolladık . Sıra Formdakii değişiklerlede ama o zaten o kadar cok bı degısıklık yok sadece forma onblur=’checkuser()” ozellıgını eklıcez ve bır warning diye div acıp uyarıyı o divde gostertecegiz . onu da direk şu şekilde yazabiliriz .
Dördüncü Adım :

<from action=”islem.php” method=”get” name=”form1″>
<input type=”text” name=”kullanici_adi” onblur=”checkuser()”><div id=”warning”></div>
<br>
<inpu type=”submit” name=”gonder” value=”Kontrol”>
</form>

İşte Formumuzun Sonhali şimdide checkuser() fonksiyonumuzu yazarken son satıra yazdıgımız   document.form1.kullanici_adi.className = ‘classdegis’; satırının ne olduguna bu satır  kullanıcı adında sorgu yapıldıgında ve sorgunun cıktısı alındıgında ınputun class degerını degıstırmesı ıcın konulmus bır satır.Bunun Etkin olabilmesi için bu script kodlarının en altına sole bır style kodu eklersenız estetık acısından guzel olabılır

<style type=”text/css”>
.classdegis {
border: 1px solid black;
background-color: #fff;
}
</style>

Son adım İse userkontol.php

userkontrol.php ‘yi istediğimiz şekilde düzenleyebiliriz . Ben sadece kullanıcı adının var olup olmadıgına baktım ve ona gore uyarılar verdım  .Siz bu mantıkla degısık uyarılar yapabılırsınız . userkontol.php yi acıklama yapmıyacagım dırek kodlarını yazacagım umarım yazımı begenmısınızdır  ?.

userkontol.php

<?
echo “<meta http-equiv=\”Content-Type\” content=\”text/html; charset=iso-8859-9\” />”;
$user = $_GET["user"];
include(‘baglanti.php’);
$user_varmi = mysql_query(“select user from user WHERE user=’$user’”);
if(mysql_num_rows($user_varmi) != 0){
echo “<font face=\”Arial,Verdana\” style=\”font-size:10px\” color=\”red\”><b>Bu Kullanici      Adi Kullaniliyor !    </b></font>”;
}elseif($user == “”){
echo “<font face=\”Arial,Verdana\” style=\”font-size:10px\” color=\”red\”><b>Kullanici Adı Yazmalısınız</b></font><br>”; }
else{
echo “<font face=\”Arial,Verdana\” style=\”font-size:10px\” color=\”green\”><b>Bu Kullanici Adini Kullanabilirsiniz !</b></font>”;
}
?>

Umarım Anlayabilmişinizdir ve umarım bir faydam dokunmuştur.

UMUT ÇETİNKAYA (mail adresim )

AJAX Tab Kontrol uygulamasını buradan test edebilirsiniz.
Kaynak kodları da buradan indirebilirsiniz.

Yorum bırakın »