За последние 24 часа нас посетили 25775 программистов и 1726 роботов. Сейчас ищут 852 программиста ...

возврат многомерного массива через json_encode

Тема в разделе "Прочие вопросы по PHP", создана пользователем Kaner, 12 дек 2011.

  1. Kaner

    Kaner Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    58
    Симпатии:
    0
    json_encode возвращает многомерный массив типа:
    $json['date'][j]

    Как к нему обратиться в javascripte? так: data.date[j] почему то не работает
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    json сюда
     
  3. Kaner

    Kaner Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    58
    Симпатии:
    0
    PHP:
    1.  
    2. <?
    3. include('functions.php');
    4. if(isset($_POST['domen'])) {
    5.     $domen=$_POST['domen'];
    6.     $conn=db_connect();
    7.     $result=$conn->query("select * from parser_zapros where domain='".$domen."'");
    8.     $num=$result->num_rows;
    9.    
    10.     $json=array();
    11.    
    12.     for($i=0;$i<$num;$i++) {
    13.         $row=$result->fetch_assoc();
    14.         $json['zapros'][$i]=$row['zapros'];
    15.         $json['zapros_id'][$i]=$row['zapros_id'];
    16.     }
    17.     if($num==0) {
    18.         $json['error']="TRUEEEEEE1";
    19.         $conn->close();
    20.         echo json_encode($json);
    21.         exit;
    22.     }
    23.     for($i=0;$i<$num;$i++) {
    24.         $query="select * from parser_positions where zapros_id=".$json['zapros_id'][$i]."";    
    25.         $result2=$conn->query($query);
    26.         $num2=$result2->num_rows;
    27.        
    28.         for($j=0;$j<$num2;$j++) {
    29.             $row2=$result2->fetch_assoc();
    30.             $json['date'][i][j]=$row2['date'];
    31.             $json['position'][i][j]=$row2['position'];
    32.         }
    33.                
    34.     }  
    35.     $conn->close();
    36.     echo json_encode($json);
    37. }
    38. ?>
    39.  

    [js]
    function watch_user_pos() {
    var domen=$('select[name=domain]').val();
    $('#w_positions table.watch_pos1').html('');
    $.post('get_zapr_and_pos.php',{domen:domen},
    function(data) {
    var i,j;
    if(data.error) {
    $('#w_positions').append("<p style='line-height:5px;cursor:pointer;width:100%;text-align:center;'>Запросы отсутствуют</p>");
    $('#w_positions').show();
    }
    else {
    $('table.watch_pos1 ').append("<tr><th>Запросы</th></tr>");
    for(i=0;i<data.zapros.length;i++) {
    if((i+1)%2==0) {
    $('table.watch_pos1 ').append("<tr style='background-color:#e8eaec;'><td>"+data.zapros+"</td></tr>");
    $('table.watch_pos2').append("<tr></tr>");
    if(data.position) {
    for(j=0;j<data.position.length;j++) {
    $('table.watch_pos2 tr:first-child').append("<th>"+data.date[j]+"</th>");
    $('table.watch_pos2 tr:last-child').append("<td>"+data.position[j]+"</td>");
    }
    }
    }
    else {
    $('table.watch_pos1 ').append("<tr><td>"+data.zapros+"</td></tr>");
    $('table.watch_pos2').append("<tr></tr>");
    if(data.position) {
    for(j=0;j<data.position.length;j++) {
    $('table.watch_pos2 tr:first-child').append("<th>"+data.date[j]+"</th>");
    $('table.watch_pos2 tr:last-child').append("<td>"+data.position[j]+"</td>");
    }
    }
    }
    $('#w_positions').show();
    }
    }
    },'json');
    }
    [/js]