Re: [Linux-programlama] Ajax - türkçe karakter problemi

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

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> &nbsp;-&nbsp;
         <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


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.