




$.Getjson Fonksiyonunu Return Döndürmüyor?
-
Su json dosyasindan ver almak istiyorum.
http://videoapi.my.mail.ru/videos/mail/hdfullfilmizlesene/_myvideo/866.json ->> üzerine tiklayinca acilmiyor, browserinize kopyalarsaniz icerigi görebilirsiniz!
su sekilde kod yazdim:
function jsonoku(jsonlink){
var link='';
$.getJSON(jsonlink, function(data){
$.each(data.videos,function(i,film)
{
if(film.key=='480p')
{
link=film.url;
alert('480p Kalitedeki Linki: '+link);
return link;
}});
});};
Film kalistesi 480p olan url'u alert yaziyor, fakat return komutu link degiskenini döndürmüyor.
ben bu $.getJSON fonksiyonundan veriyi nasil retrun edereim?
-
Eğer başka bir fonksiyon içersinde kullanacaksan,
return link; yerine link_kullan(link);
yazarsan o fonksiyona linki göndermiş olursun
function link_kullan(link){
link.kullaniyorum;
}
şeklinde de bir fonksiyon oluşturursun istediğini yaparsın.
-
zaten baska bir funktion icinden cagiriyorum bu jsonoku fonksiyonu.
su sekilde
function test() { var jsondosyam ='http://videoapi.my.mail.ru/videos/mail/hdfullfilmizlesene/_myvideo/866.json'; var gelenveri = jsonoku(jsondosyam); -->> burada asagidaki funktiondan return value istiyorum alert(gelenveri);
}
function jsonoku(jsonlink){ $.getJSON(jsonlink, function(data){ $.each(data.videos,function(i,film) { if(film.key=='480p') { link=film.url; alert('480p Kalitedeki Linki: '+link); return link; ----->>>>>>>>> ama bu return gitmiyor ben bu link degiskenini nasil alabilirim? } }); }); };
-
Yaptığın kodları bir fonksiyon içerisine alıp return etmeyi dene.
function fn() { var strDeger = ""; $.getJSON(jsonlink, function (data) { $.each(data.videos, function (i, film) { if (film.key == '480p') { link = film.url; //alert('480p Kalitedeki Linki: '+link); strDeger = link; } }); }); return strDeger; }
ontedi tarafından 21/Nis/15 09:21 tarihinde düzenlenmiştir -
verdigim Kodlara iyi bakarsan kodlarin zaten bir Fonksiyon icinde oldugunu göreceksin, sanirim gözden kacirdin.
function jsonoku(jsonlink){ $.getJSON(jsonlink, function(data){ $.each(data.videos,function(i,film) { if(film.key=='480p') { link=film.url; alert('480p Kalitedeki Linki: '+link); return link; ----->>>>>>>>> ama bu return gitmiyor ben bu link degiskenini nasil alabilirim? } }); }); };
senin azdigin seklinde denedim yine return dönmüyor.
Bu bu türevdeki functionlar kendi içlerinde veri döndürüyorlarmis sadece, ama cözümüde muhakkak olmali! -
Kanakan bunu yazdı
Hocam;
var link; diye global tanımla, fonksiyonun dışına
Sonra fonskiyonu call ettikten sonra işi bitince link' i kullanırsın
-
glabol degiskende denedim olmuyor.
Disari veri vermiyor bu funktion.
-
Kanakan bunu yazdı
glabol degiskende denedim olmuyor.
Disari veri vermiyor bu funktion.
asenkron çalışıyor sanırım,
ajax metodu kullanıyorsan içine;
async: false diye ekleyip dener misin?
-
bak su sekilde denedim yine olmuyor.Return undefined gönderiyor
function jsonoku(jsonlink){ var cevap = $.ajax({ dataType: "json", async: false, url: jsonlink }); //burda cevap.status kontrol edilip işlem başarılı olmadıysa farklı bişey dönülebilir. return cevap.responseJSON; //return jQuery.parseJSON(cevap.responseText); //responseJSON boş geliyorsa elle json parse edilebilir. };
Kanakan tarafından 21/Nis/15 17:22 tarihinde düzenlenmiştir
son satiri kullanirsam su sekilde
return jQuery.parseJSON(cevap.responseText); //responseJSON boş geliyorsa elle json parse edilebilir.
bu seferde object Object dönüyor!! -
Kanakan bunu yazdı
bak su sekilde denedim yine olmuyor.Return undefined gönderiyor
function jsonoku(jsonlink){ var cevap = $.ajax({ dataType: "json", async: false, url: jsonlink }); //burda cevap.status kontrol edilip işlem başarılı olmadıysa farklı bişey dönülebilir. return cevap.responseJSON; //return jQuery.parseJSON(cevap.responseText); //responseJSON boş geliyorsa elle json parse edilebilir. };
hocam async çalışıyor o metot, sen onu call ettiğinde o daha veriyi döndürmediğinden boş görünüyor. böyle false yapınca olacağını söylemişler. ama link' i var link diye fonk dışında en tepede tanımlaman gerekiyo.
sonra return etmene gerke yok
ozgunlu tarafından 21/Nis/15 17:21 tarihinde düzenlenmiştir -
var cevap; degiskenini en yuarda global mi tanimlamam gerek?
bir örnek yazsaniz sevinirim.