From: Nuri Akman (nuri.akman@hazine.gov.tr)
Date: Wed 06 Dec 2006 - 13:13:30 GMT
Merhaba,
PHP'den dönen bilginin XML olmadığını düşünmek mümkün mü? Yoksa http.responseText her zaman XML midir?
Örneğin, çağırdığımız sayfa bize şu çıktıyı üretiyorsa:
<h1>İSTANBUL İLÇELERİ</h1>
<ul>
<li>ŞİLİ</li>
<li>FATİH</li>
</ul>
Bu durumda sadece document.getElementById('goster').innerHTML = http.responseText; yazarak kullanabilir miyiz? veya nasıl kullanabiliriz?
Sevgiler,
Nuri AKMAN
----- Original Message -----
From: Sühan Erol
To: linux-programlama@liste.linux.org.tr
Sent: Wednesday, December 06, 2006 3:01 PM
Subject: RE: [Linux-programlama] Ajax - türkçe karakter problemi
Merhaba
Aslında cevabımda bir hata yapmışım. php den geri dönen bilginin xml olduğunu zannederek header kısmına xml yazılması ve charset olarak 8859-9 verilmesini önerdim. Ben ajaxta genelde geri dönen bilginin bir veri dizisi olduğu şekilde kullandığımdan bilginin işlenebilir olması için xml formatını kullanıyorum. Örneğin istanbul iline ait ilçeleri almak istediğimde geri dönen bilgi
<?xml version="1.0" encoding="ISO-8859-9"?>
<kayit>
<ilce>ŞİŞLİ</ilce>
<ilce>FATİH</ilce>
</kayit>
şeklinde oluyor. Bu bilgiyi javascript ile işleyerek örnegin bir listbox nesnesine yazmak istediğimde
var isIE = (navigator.appName.indexOf("Microsoft") != -1);
for(i=0;i<xmlDoc.documentElement.childNodes.length;i++) // herbir ilce kayıdına tek tek gidiliyor
{
tagname=xmlDoc.documentElement.childNodes[i].tagName; // bu uygulamada gereksiz (herzaman 'ilce' değeri gelecek) , başka durumlarda ihtiyaç olabilir.
if(isIE)
{
deger=xmlDoc.documentElement.childNodes.item(i).text;
}
else
{
deger=xmlDoc.documentElement.childNodes.item(i).firstChild.nodeValue;
}
document.getElementById('ilceler').options[i] = new Option(deger,deger);}javascript komutunu kullanarak ilçe bilgilerinin listbox nesnesine eklenmesini sağlanmış oluyor.
Aşağıdaki php ye bağlanarak bilgiyi almak ve üstteki örnekteki gibi gelen xml bilgisini işleyerek sayfa yenilemeden bilgi alışverişi yapmak mümkün olmakta.
Burada anlatılan örnek Ajaxın açılımı olan (Asynchronous Javascript and XML) dan da anlaşılan javascript ile xml bilgisinin işlenmesi ve kullanılmasıdır.Görüldüğü gibi ugulaması kolaydır. Şu sıralarda gündemde olan WEB 2.0 kavramı Ajaxı da içine alan ve javascriptin üstün yeteneklerini kullarak tarayıcıda kullanım kolaylıkları(Sürükle-bırak vs.) sağlamayı amaçlayan bir çatıya verilen isimdir. WEB 2.0, Ajax ile karıştırılmaktadır. Ajax sadece eşzamanlı olmayan ve genellikle xml formatında olan bilgilerin tarayıcı yenilenmeden alınıp işlenmesini kapsamaktadır. Eğer daha dinamik sayfalar yapmak istiyorsanız yahoo firmasının kendi kullandığı altyapıyı inceleyebilirsiniz.
http://developer.yahoo.com/yui/
------------------------------------------------------------------------------
From: linux-programlama-bounces@liste.linux.org.tr [mailto:linux-programlama-bounces@liste.linux.org.tr] On Behalf Of Nuri Akman
Sent: Wednesday, December 06, 2006 2:11 PM
To: linux-programlama@liste.linux.org.tr
Subject: Re: [Linux-programlama] Ajax - türkçe karakter problemi
Sayın Erol,
Öneriniz bende çalıştı. :) :)
Uzun zamandır Ajax çalışmayı düşünüyordum. Bu örnek bana cesaret verdi.
Size bir şey sormak istiyorum:
Ajax ile bir şeyler yapmak kolay mı? Yoksa gerçekten bu örnekte olduğu kadar basit bir şey mi?
Sevgiler,
Nuri AKMAN
----- Original Message -----
From: Sühan Erol
To: linux-programlama@liste.linux.org.tr
Sent: Wednesday, December 06, 2006 1:36 PM
Subject: RE: [Linux-programlama] Ajax - türkçe karakter problemi
header('Content-type: text/xml');
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-9\"?>";
komutlarından sonra html içeriğini yazarak deneyiniz.
----------------------------------------------------------------------------
From: linux-programlama-bounces@liste.linux.org.tr [mailto:linux-programlama-bounces@liste.linux.org.tr] On Behalf Of Ahmet
Sent: Wednesday, December 06, 2006 1:24 PM
To: linux-programlama@liste.linux.org.tr
Subject: [Linux-programlama] Ajax - türkçe karakter problemi
Merhabalar,
ilk Ajax denememde türkçe karakter problemi ile karşılaştım :(
denediğim örneği aşağıda 3 dosya şeklinde gönderiyorum.
// index.php dosyası
<html>
<head>
<title>Ajax Deneme</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-9" />
<script language="JavaScript" type="text/javascript">
var http;
var browser = navigator.appName;
oXMLHttpRequest()
function oXMLHttpRequest() {
var obj;
try {
// Sadece Internet Explorer için
http = new ActiveXObject('Microsoft.XMLHTTP');
}
catch(e) {
try {
// Gecko tabanlı, safari ve de Opera için
http = new XMLHttpRequest();
}
catch (e) {
// XMLHttpRequest destegi yoksa
http = false;
}
}
return http;
}
function Goster(sayfa){
document.getElementById("goster").innerHTML="Lütfen bekleyiniz.. Veriler alınıyor.."
var url=sayfa
http.open('get', url);
http.onreadystatechange = icerikdegisim;
http.send(null);
}
function icerikdegisim(){
if(http.readyState == 4){
document.getElementById('goster').innerHTML = http.responseText;
} else {
// işlem devam ediyor
}
}
</script>
</head>
<body>
<br />
<br />
<br />
<br />
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center">
<a href="javascript:Goster('icerik.php');">İçerik</a> -
<a href="javascript:Goster('icerik.php');">İçerik</a>
</td>
</tr>
</table>
<br>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td id="goster"></td>
</tr>
</table>
</body>
</html>
//icerik1.php dosyası
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-9" />
</head>
</html>
<body>
İçerik 1
<br />
Türkçe karakterler : ü.i.ğ.ş.ç.ö.ı.Ü.İ.Ğ.Ş.Ç.Ö.I.<br />
</body>
</html>
//icerik2.php dosyası
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-9" />
</head>
</html>
<body>
İçerik 2
<br />
Türkçe karakterler : ü.i.ğ.ş.ç.ö.ı.Ü.İ.Ğ.Ş.Ç.Ö.I.<br />
</body>
</html>
Kolay gelsin iyi çalışmalar...
----------------------------------------------------------------------------
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
------------------------------------------------------------------------------
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama