Количество json объектов

Тема в разделе "JavaScript", создана пользователем Dj_StelS, 23 фев 2012.

Модераторы: ZiX
  1. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    Помогите, никак не могу найти, как подсчитать сколько объектов вернул php скрипт?
    length считает только сколько символов в строке...
    помогите пожалуйста, нужно подсчитать для цикла
    данные json получаю с помощью jquery getJSON
     
  2. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    996
    Симпатии:
    268
    на php функция count(); Как вариант считать с помощью php и отдавать в одной из переменных json массива.
    Вот аналог функции count на ява скрипт http://javascript.ru/php/count
     
  3. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
  4. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
  5. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    length для массивов:
    Код:
    var arr = [1, 2];
    alert(arr.length);
    для объектов например цикл пройти и подсчитать:
    Код:
    var obj = {"test1": 1, "test2":2};
    var count = 0;
    for (o in obj) {
        count++;
    }
    alert(count);
     
  6. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    не подходит, т.к. у меня
    var obj = {"test1": 1, "test2":2}{"test1": 1, "test2":2}{"test1": 1, "test2":2}{"test1": 1, "test2":2};
    и это количество obj не постоянно, оно динамическое
     
  7. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.035
    Симпатии:
    703
    ну если на php можно еще такой костыль :)
    $array = explode('}{',$json);
    $num_obj = count($array);
     
  8. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    никто похоже не понял, что я хочу)))) хорошо, объясняю подробней:
    test.php
    PHP:
    $a mysql_query("SELECT * FROM `table`");
    $b mysql_fetch_assoc($a);
    while(
    $b mysql_fetch_assoc($a)){
    echo 
    json_encode($b);
    }
    отдает вид {"test1": 1, "test2":2}{"test1": 1, "test2":2}{"test1": 1, "test2":2}{"test1": 1, "test2":2}
    test2.js
    HTML:
    
    var get = function(){
           $.getJSON('test.php',{},parse);
            }
    var  parse = function(data){
            //вот тут мне нужен цикл, что бы выводить, если js получил более одного {данные}
    //COUNT = вот эту переменную мне надо найти
    //for(var i=0; i<COUNT; i++){
               $("#content").append(data.id+"|"+data.test);
    //}
            }
    
     
  9. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    решил проблему
    может кому пригодится

    PHP:
    $a mysql_query("SELECT * FROM `table`");
    $b mysql_fetch_assoc($a);
    $array = array();
    while(
    $b mysql_fetch_assoc($a)){
    $array[] = $b;
    }
    echo 
    json_encode($array);
    в js количество считаем таким образом:
    var count = 0;
    for (o in obj) {
    count++;
    }