Итак, у меня возникли проблемы с JSON.
setupdata({"NON-RELIGOUS ORGANIZATIONS":{"23":["NON-RELIGOUS ORGANIZATIONS","Does this Loce test 2","",null]},"YARD SALES":{"1":["YARD SALES","yard sale","1332599400",null],"22":["YARD SALES","LOCKING TEST YARD SALE a change and more","1331814600",null],"21":["YARD SALES","Generic Yard Sale Title","",null]}})
И я обрабатываю это с ....
function setupdata(data){
alert(data.length);
for(i=0; i<data.length; i++) {
newdiv = document.createElement("DIV");
newdiv.setAttribute("id","cat"+i);
newdiv.innerHTML(\'test\');
document.getElementById(\'divmiddle\').appendChild(newdiv);
}
}
Я получаю UNDEFINED для data.length, а также цикл i не работает, потому что он не определен. Я думаю, я просто немного озадачен тем, как анализировать данные, которые я возвращаю из вызова JSON. Любая помощь приветствуется.
И ВЫИГРАЮЩИЙ ОТВЕТ
Создание массивов в PHP:
while($getcats = mysqli_fetch_array($query)){
$layout[$getcats[news_cat_name]];
if(!$getstories = mysqli_query($connection,"SELECT news_id,news_title,news_organization,news_expiration from news_items where news_category='$getcats[news_cat_id]'")){ echo mysqli_error($connection);}
while($looptitles=mysqli_fetch_array($getstories)){
$layout[$getcats[news_cat_name]][$looptitles[news_id]][]=date("m/d/y G:i a",$looptitles[news_expiration]);
$layout[$getcats[news_cat_name]][$looptitles[news_id]][]=$looptitles[news_title];
$layout[$getcats[news_cat_name]][$looptitles[news_id]][]=$looptitles[news_organization];
}
}
И РЕЗУЛЬТАТ JSON
setupdata({"NON-RELIGOUS ORGANIZATIONS":{"23":[false,"Does this Loce test 2","2"]},
"YARD SALES":{
"1":["03\/24\/12 10:30 am","yard sale","0"]
,"22":["03\/15\/12 8:30 am","LOCKING TEST YARD SALE a change and more","0"],
"21":[false,"Generic Yard Sale Title","0"]}})
и JS, чтобы разобрать JSON
for(var key in data){//OUTER LOOP FOR THE MAIN OBJECTS
divkey = document.createElement("DIV");
divkey.setAttribute("id",key);
divkey.style.fontSize = \'13px\';
divkey.style.textDecoration = \'underline\';
divkey.style.paddingTop = \'3px\';
divkey.style.paddingBottom = \'5px\';
divkey.style.position = \'relative\';
divkey.innerHTML = key;
document.getElementById(\'divmiddle\').appendChild(divkey);
for(var mykey in data[key]){//INNER LOOP FOR THE INNER OBJECTS
divkey = document.createElement("DIV");
divkey.setAttribute("id",mykey);
divkey.style.fontFamily = \'Verdana\';
divkey.style.fontSize = \'11px\';
divkey.style.paddingBottom = \'5px\';
divkey.style.position = \'relative\';
divkey.innerHTML = +data[key][mykey][1]+\' -- \' + data[key][mykey][0];
document.getElementById(\'divmiddle\').appendChild(divkey);
}
}
}
** Я надеюсь, что это поможет кому-то с полным решением, так как повсюду есть частичные сообщения. **