Есть страничка на пхп, она собирает данные из таблицы, получает двумерный массив php Код (Text): .... $Sum = array($Arr,$Ar); echo json_encode($Sum); выдает [["485","485","579","577","577"],["2014-04-01 10:17:53","2014-04-01 10:17:52","2014-03-28 15:28:44","2014-03-28 15:28:43","2014-03-28 15:28:42"]] необходимо распарсить этот массив и отдать функции в виде двумерного массива в Js .Соответсвенно js функция лежит в другой странице Код (Text): App = function(){ var ajaxStack = []; this.pushAjaxResult = function(ajaxResult) { ajaxStack.push(ajaxResult); } this.getLastAjaxResult = function() { return ajaxStack[ajaxStack.length - 1]; } }; app = new App(); // теперь window.app будет ссылаться на инстанс App $.get('/testo.php',function(Sum){ var x = JSON.parse(Sum); app.populateTable(x); },"json") app.populateTable = function(x) { var buf =[]; for (var i = 0;i<x.length;i++){ buf[i]=[x[i]]; } $.plot($("#placeholder"), [ buf ]); вот эта функция работает для одномерного массива. но для двумерного сваливает все значения одного столбца в buf (0), а второго в buf (1). И сразу же вопрос - как сделать это красивее, и вообще то лучше в одной странице это сделать. Функцию где-то подсмотрел, для одномерного массива хватало, а для двумерного что-то интереснее нужно
а он уже в виде двумерного массива. проблема в чем? на страницу перекинуть? просто echo '<script> var Sum = '.json_encode($Sum).';</script>';
не нужен мне пхп. я могу в массив записать двумерный мне нужно в javascript прочитать его. json_decode() это функция пхп
Код (Text): <script> for(var i in data){ var dataI = data[i]; for(var j in dataI){ var value = dataI[j]; //or var value = data[i][j]; } } </script>
Код (Text): $.get('/testo.php',function(Sum){ console.log(Sum);//сздесь уже JSON for(var i in Sum){ var row = Sum[i]; for(var j in row){ var value = row[j]; console.log(value); } } },"json")
echo '<script> var Sum = '.json_encode($Sum).';</script>'; echo '<script> var Sum = '.json_encode($Sum).';</script>'; echo '<script> var Sum = '.json_encode($Sum).';</script>'; echo '<script> var Sum = '.json_encode($Sum).';</script>'; echo '<script> var Sum = '.json_encode($Sum).';</script>'; echo '<script> var Sum = '.json_encode($Sum).';</script>'; =)
Для етово надо понят как HTTP идет и што PHP сперва разрабатываетса а результат HTML код выходит Добавлено спустя 12 минут 34 секунды: а я все время думал, што "чувак" ето обзыванние, аказываетса што нет?
igordata, мысль понятна. действительно в Sum лежит весь массив. тока таким перебором Код (Text): for(var i in Sum){ var row = Sum[i]; for(var j in row){ var value = row[j]; console.log(value); он каждый символ перебирает, нужно по запятым там или пробелам. но думаю это решаемо
undefined Добавлено спустя 1 минуту 50 секунд: ну да, одномерный массив получаем. придется по квадратным скобкам разыскивать и собирать
index.php Код (Text): <!DOCTYPE html> <html> <head> </head> <body> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function(){ $.get('test.php',function(data) { alert(data[0][0]); //2000 }, "json"); }); </script> </body> </html> test.php Код (Text): <?php $subArray = array_fill(0, 10, rand(200, 5000)); $array = array_fill(0, 10, $subArray); header("Content-Type:application/json;charset=utf8"); echo json_encode($array); у меня все идет
даду урок грамотности =) тебе это нужно на начальном этапе, пока не привык писать коряво нет. "человек" на языке хиппи, теперь и нариков (наркоманов) всяких. Типа я нарик такой из тёмного двора подваливаю "эй пацанчик, доку читал?"
спосибо за попровление, ничего, через несколько лет научусь ище.а ест тут IRC чат? я думаю так я лутше научусь