Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

JQuery Array

Kisiler dizisini ajaxın dışında kullanamıyorum arkadaşlar. Yardımcı olursanız sevinirim.

	
var kisiler = new Array();
		$.ajax({
        type: "GET",
		url: "../xml/uyeler.xml",
		dataType: "xml",
		success: function(xml) {
			$(xml).find('Uye').each(function(){
				var id = $(this).find('No').text();
				var isim = $(this).find('Isim').text();
				kisiler.push(isim);
					});	
		}		
	});
	alert(kisiler)
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • 1
    fka adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    70 cevap - 0 soru
    Javascript event based bir dildir, dolayısıyla bu kod çalışmaz.

    Çünkü, sen kodu çalışıtırıyorsun ve arkaya bir ajax isteği atıyorsun. Bu ajax isteği gönderildikten hemen sonra cevap beklenmeden diğer komutu çalıştırır.

    Dolayısıyla alert(kisiler); ajaxtan veri almadan önce çalıştırılır. Dolayısıyla array boş gelir.

    Bunu 2 şekilde çözebilirsin;

    ilk yöntem, yapacağın işi success: property'si içerisine koymaktır. success'in sonuna,

    alert(kisiler);


    dersen doğru çalışır.

    ikinci yöntem daha kötüdür, çünkü tamamen varsayım yaparız.

    setTimeout(function() {alert(kisiler);}, 1000)
    diyerek ajax'tan cevap gelmesini bekleyerek alabilirsin. fakat ajaxtan gelen veri eğer 1sn'i geçerse veriyi alamazsın.
    • Actionsee adlı üyenin fotoğrafı Actionsee
      Aslında yapmak istediğim tam olarak şu.

      Üyeler arası mesajlaşma sistemini yazıyorum. Gönderilecek kişiyi yazarken, öneri isimler gelecek. Bunu xml dosyasından alıyorum. JQuery ui de bu var (autocomplete), fakat benim eklentisiz yapmam gerekli. Önemli olan öğrenmek, hazır almak istemiyorum.
      9 yıl önce yazılmış
    • fka adlı üyenin fotoğrafı fka
      Söylediğim gibi, "success:" içerisinde yapacaksınız kullanıcı listesini aldıktan sonraki işlemlerinizi :) Yani aşağıya daha bişey yazmayın. İçeriden gidin.
      9 yıl önce yazılmış

Cevaplar

Hiç cevap bulunamadı.