Вход

Просмотр полной версии : Вопрос связаный с JSON и массивами


Svist
03.03.2012, 09:05
Всем привет!
У меня таккой вопрос, собственно покажу на примере :
$Z = new Array();
$Z['x']= new Array();
$Z['y']= new Array();
$Z['x']['q']="qqqqq";
$Z['y']['w']="wwwww";
alert( JSON.stringify($Z));


и получаю вот это "[]" Собсвенно почему ?? И как мне перевести подобный массив в строку для последующей передаче на сервер .. и там его распаковки средствами пхп?? Проблема должна решаться как то легко но как не пойму.
За ранее спасибо!

Kolyaj
03.03.2012, 09:36
Не надо на JavaScript писать также, как на PHP, это разные языки.

var Z = {
x: {
q: 'qqqq'
},
y: {
w: 'wwww'
}
};
alert(JSON.stringify(Z));

Svist
03.03.2012, 12:22
Kolyaj Спасибо за совет... понял.
А если я этот массив формирую в цикле как же тогда быть ?
вот прям кусок кода, разбератся в нем не надо Просто может посоветуете как мне быть и передать массив $Z если я его наполняю подобным образом ..:
for (i = 1; i <= $PAGE[$ThisPage]['pid']; i++) {
if((trim(giev('part'+i))=='')&&(Alr==1)){
Alr=2;
$Z['error']['txt']=$Z['error']['txt']+" - Есть не заполненные поля<br />";
}
if (document.getElementById('p1pr'+i)){
n++;
$Z['price'][n]= new Array(); // текущая строка в прайсе заказа
if (trim(giev('p1pr'+i))==''){siev('p1pr'+i,'0');}
if (trim(giev('pkolv'+i))==''){siev('pkolv'+i,'1')}
sum=sum+(parseFloat(strrx(",",".",giev('pkolv'+i)))*parseFloat(strrx(",",".",giev('p1pr'+i))));
$Z['price'][n]['part']=trim(giev('part'+i,'en'));
$Z['price'][n]['pnam']=trim(giev('pnam'+i,'en'));
$Z['price'][n]['panalog']=trim(giev('panalog'+i,'en'));
$Z['price'][n]['pkolv']=strrx(",",".",trim(giev('pkolv'+i,'en')));
$Z['price'][n]['p1pr']=strrx(",",".",trim(giev('p1pr'+i,'en')));
$Z['price'][n]['p2pr']=trim(giev('p2pr'+i,'en'));
$Z['price'][n]['pavto']=trim(giev('pavto'+i,'en'));
$Z['price'][n]['pdscr']=trim(giev('pdscr'+i,'en'));
}
$Z['price'][0]= new Array();
$Z['price'][0]['count']=n;
$Z['price'][0]['summ']=sum;

sie('prcalc',sum+' руб.');
}

Pavel M.
03.03.2012, 15:32
вы, похоже, путаете
массивы http://learn.javascript.ru/array
и объекты http://learn.javascript.ru/objects

Svist
03.03.2012, 16:18
Вообщем перевел Индексы с текстовых на числовые и все нормально полочилось всем спасибо тема закрыта !