XAJAX ile toplu olarak bir forma bağlı olan tüm input değerlerini, dizi değişken olarak gönderebildiğiniz gibi, bazen form içerisindeki tek bir alanın içindeki değere göre işlem yapmak gerekebilir.

Xajax kütüphanesini http://xajaxproject.org/ adresinden indirebilir ve bu adresten detaylı bilgi alabilirsiniz.

Örneğin, bir Combo-Box içinden gelen değer, diğer bir form alanındaki değeri veritabanından sorgulayarak oluşturacaksa, tüm form alanlarının bir fonksiyona gönderilmesinden ziyade, sadece sorguyu etkileyip, sonucu döndürecek olan alanın değerinin gönderilmesi rasyonel olan işlemdir.

Şimdi öncelikle aşağıda koda bakalım ve  sonra satır satır açıklayalım.

<?php
ini_set
("display_errors","on");// Ben her zaman hata kodlarının Development modunda olmasına dikkat ederim.
include(
"xajax/xajax_core/xajax.inc.php");// Bir alt klasöre koyduğumuz XAJAX kütüphanesini include ediyoruz

$xajax = new xajax();//$xajax adında bir  xajax objesi oluşturuyoruz.
$xajax->setFlag("debug",true);// Bu method, pop-up debug penceresi açacak, bir hatanız var ise buradan takip edebileceksiniz
$xajax->registerFunction("secileniGoster");// Register edeceğimiz fonksiyonlar. Açıklamaları fonksiyon üzerinde
$xajax->registerFunction("sonucYaz");
$xajax->processRequest();// İstekleri bu method ile çağırıyoruz. Tüm fonksiyon tanımlamalarımızın arkasından, en son bu methodu çağırmalıyız.

echo '<html>';
echo 
'<head>';
$xajax->printJavascript('xajax/');  // HEAD tagi içerisinde XAJAX'ın javascript dinamiklerini oluşturuyoruz.
echo 
'</head>';
echo 
'<body>';

echo '<form id="denemeForm">';
echo 
'Adınızı Yazınız : <input type="text" size="30" name="adSoyad"/>';
echo 
'<select id="secim" name="secim" onchange="xajax_secileniGoster(xajax.$(\'secim\' ).value)">';// Combo-Box seçimini değiştiği an  secileniGoster fonksiyonu çalışacak. burada en önemli unsur xajax.$('secim').value tanımlaması, register edilmiş fonksiyon içerisinde onchange eventi ile sadece 'secim' combo-box'ındaki değeri gönderecektir.
echo 
'<option value="BOS SECIM">SECIM YAPIN</option>';
echo 
'<option value="DEGER 1 GOSTERILIYOR">SECIM 1</option>';
echo 
'<option value="DEGER 2 GOSTERILIYOR">SECIM 2</option>';
echo 
'<option value="DEGER 3 GOSTERILIYOR">SECIM 3</option>';
echo 
'</select>';
echo 
'</form>';
echo 
'<input type="button"  value="FORMU GONDER" onclick="xajax_sonucYaz(xajax.getFormValues(\'denemeForm\'));return false;"';// Burada tanımladığımız onclick eventi ise tüm form değişkenlerini  .getFormValues methodu ile array olarak sonucYaz fonksiyonuna gönderir.
echo 
'<div id="sonuc">HENUZ SONUC YAZILMAMIS</div>';
echo 
'</body>';
echo 
'</html>';

function secileniGoster($secilen)
{
    
$objResponse = new xajaxResponse();//Dönüş yapacak XAJAX objesi oluşturuluyor.
    
    
$objResponse->alert($secilen);// combo-box'dan gelen değer alert ile ekrana gönderiliyor. Siz bu bölüme bu değişken değeri ile yapmak istediğiniz fonksiyon zincirini tanımlayabilirsiniz.
    
    return 
$objResponse;
}

function sonucYaz($formData)
{
    
$objResponse = new xajaxResponse();
    
    
$objResponse->assign("sonuc","innerHTML",nl2br(print_r($formData,true)));// $formData bir array ve nl2br (New Line to <br/> fonkisyonu ile sonuc adındaki div'e array'den gelen dataları yazdırıyoruz.

// Siz bu arada veritabanına yazdırma yapabilir ya da benzeri bir dolu işlevi çalıştırabilirsiniz.
    
    return $objResponse;
}
?>

İyi günlerde kullanmanız dileğiyle,

A. Bahadır ÜGE