2013-11-17 3 views
0

Я слежу за множеством учебников и вопросов с сайта. Я пытаюсь получить массив обратно с Ajax вызова функции PHP с использованием «эхо json_encode()»Сообщение Ajax json для php для нескольких значений возврата

Я думаю, что моя проблема заключается в коде JS

JS ....

var pid = 23; 
$.ajax({ 
    type:"POST", 
    url:"../classes/ajax.php", 
    data: {dv:pid}, 
    dataType:'json', 
    success: function(data) { 
    alert(data); 
    $('div.dv-panel').css('background-image', 'url(../classes/' + data.url + ')'); 
    $('div.dv-panel').attr('href', '/classes/' + data.url); 
    $('<ol class="breadcrumb"> 
     <li><a href="#">'+ data.sbj + '</a></li> 
     <li><a href="#">'+ data.cls +'</a></li> 
     <li><a href="#">'+ data.typ +'</a></li>  
     <li class="active">'+ data.ttl +'</li></ol>').appendTo('div.dv-breadcrumb'); 
    $(data.ttl).appendTo('h2.dv-title'); 
    $(data.user).appendTo('div.dv-user'); 
    } 
}); 

РНР ...

if($_POST && isset($_POST['dv'])) { 
$op = new Ajax; 
$response = $op->doc_view_where_id($_POST['dv']); 
} 


function doc_view_where_id($pid) { 
    $sql = "SELECT * FROM upload WHERE id = ?"; 
    if($try = $this->con->prepare($sql)) { 
     $try->bind_param('s',$pid); 
     $try->execute(); 
     $try->bind_result($row); 
     if($try->fetch()) { 
      $path = $row['path']; 
      $path = str_replace('\\','/',$path); 
      $path = str_replace(' ','%20',$path); 
      $view = array(); 
      $view["url"] = $path; 
      $view["sbj"] = $row['subject']; 
      $view["cls"] = $row['class']; 
      $view["typ"] = $row['type']; 
      $view["ttl"] = $row['title']; 
      $view["user"]= $row['username'];; 
      echo json_encode($view); 
     } 

    } 
} 

я использую тот же PHP код для получения одиночных значений обратно с AJAX просто отлично, и я думал, что с помощью JSON будет идти так же, но, это не Ретур n любые ошибки php или что-то еще.

ответ

0

Я думаю, вам нужно выполнить некоторую отладку, чтобы сузить место, где возникает проблема. Я бы начал с проверки запроса Ajax в Firebug. Откройте firebug, нажмите NET, а затем XHR. Теперь запустите запрос в своем браузере. Вызывает ли он какие-либо коды ошибок HTTP? Какие параметры отправлены? Каков ответ? Вы также можете отлаживать на стороне PHP, используя функцию error_log(). Например, закомментируйте echo json_encode ($ view); и попробуйте вместо этого:

$response = json_encode($view); 
error_log(print_r($response, true)); 

Это будет регистрировать содержимое объекта JSON в РНР журнал ошибок в виде строки без прерывания нормального потока программы.

Когда вы его получите, я буду использовать возврат вместо эха.

+0

Это позволяет мне быстро отлаживать меня. Он все еще не работает, но я сузил его до php, возможно, проблема с тем, как im не связывает результаты. Спасибо! – MatUtter

Смежные вопросы