Ajax Ve Json (Problem)
-
Merhaba arkadaşlar, ajax ile bir php sayfaya post ile veri gönderiyorum, php de json gönderiyor. gelen json'u istediğim gibi kullanamıyorum.
cat.php dosyamın ilgili kısmı şöyle
$sql = mysql_query("SELECT * FROM categories"); $cat = array(); while ($row = mysql_fetch_assoc($sql)) { array_push($cat, $row ); } echo json_encode($cat);
:
ajax ise şöyle:
$.ajax({ type: "POST", url: "cat.php", data: {'process':'edit','type':'del','catid':idid}, datatype: "text", success:function(result) { $('#cats').append(result+"<br>"); } });
bu şekilde gelen veriyi #cats id'li div'e yazdırıyorum, çıktı şu şekilde:
[{"catid":"8","catname":"Dokuzuncu Kategori","parent":"0"}]
şimdi diyeceksiniz ki $.each kullanman lazım, onu da ajax'ın success kısmını şöyle değiştirerek yapıyorum:success:function(result) { $.each(result, function(key, value){ $('#cats').append(key+"-"+value); }); }
bu sefer çıktı şöyle oluyor:
0-[1-{2-"3-c4-a5-t6-i7-d8-"9-:10-"11-812-"13-,14-"15-c16-a17-t18-n19-a20-m21-e22-"23-:24-"25-D26-o27-k28-u29-z30-u31-n32-c33-u34- 35-K36-a37-t38-e39-g40-o41-r42-i43-"44-,45-"46-p47-a48-r49-e50-n51-t52-"53-:54-"55-056-"57-}58-]
değişik değişik şeyler deniyorum bu success içinde ama bi türlü düzgün bir veri alamadım, mesela sadece gelen json'dan catid'i yazdırmak istiyorum olmuyor -
Dönen veriyi parse etmen lazım.
var parsedData = $.parseJSON(result.d);
Ardından parsedData değişkenini foreach ile dönebilirsin.
-
Datatype bölümünü json yapıp daha sonra dönen sonucta result.catid şeklinde gösterebilirsin.
-
@slothere: daha önce datatype: "json" şeklinde de denemiştim, hatta tekrar denedim olmadı, datatype: "text json" da denemiştim o da yemedi,
@wking: sağolasn hocam düzeldi parse edince, şu an kod şöyle:
success:function(result) { var parsedData = $.parseJSON(result); $.each(parsedData, function(key, value){ $.each(value, function (key, value) { $('#cats').append(key+"-"+value+"<br>"); }); }); }
çıktısı da şöyle:
catid-8
catname-Dokuzuncu Kategori
parent-0 -
this ile çek hacım each içinde.
this.Catid gibi