Topic: jquery + json = magija
Sveiki, turiu tokį dalyką, nes jau pora valandų kaip žiūriu ir negaliu patikėt kad taip vyksta.
Esme tokia - yra ajax užklausa:
ondblclk: function(NODE, TREE_OBJ) {
$.post("plugins/menu/tree.php", { "action": "show", "id" : $(NODE).attr("id") },function (data) {
$("#url").val(data.url);
},"json");
}
Viskas perduodama teisingai! Su FireBug tikrinu, perduodama tai kas turi būti perduodama. Tarkim kažkas tokio:
action show
id 1
Toliau veikia scriptas, sudaro ką reikia ir išveda resultatą:
$data = $core->db->fetch_array();
header('Content-type: application/json');
echo json_encode($data);
čia irgi gaunu duomenis tikslius. (pasitikrinu su FireBug).
Viskas lyg ir veiktų, kaip sakant veikia ant FF (kur daugiau viskas veiks jei ne ant lapės?) Bes gražiausiai tai kad Opera ir Chrome veikia tik su pirma eilute kurią bandau išgauti iš Ajax grąžinto teksto. Tarkim:
$("#url").val(data.url);
Suveikia puikiai, įveda norimą tekstą i laukelį. BET jei bandau įdėti bent viena eilute daugiau kad išvestų - užsilenkia scriptas tiek Operoj tiek Chrome. žiūrėjau Operos logus, nes Chrome ten totaliai gryba pjauna su savo "debugeriu". Taigi nurodau papildomą vieną eilutę:
$("#url").val(data.url);
alert(data.default); // Json grąžina tik 1 raidę: "Y"
Opera sako man:
alert(data.default); - Syntax error at line 47 while loading.
Chome išvis nustebino:
Uncaught SyntaxError: Unexpected token default ajax.php:126
126 eilutė: onrename : function (NODE, TREE_OBJ) {
Kur visiškai niekas nesiriša su Ajax :D
Gal kas buvot susidurę su tokia problema? Arba gal ko aš nepastebiu.