2013-11-21 3 views
2

Я еще новичок в понимании концепции MVC, Ajax, и как они работают вместе, чтобы позвонить данные из базы данных, пожалуйста, голые со мной :)Анализировать ошибки при возвращении JSON записи с Ajax вызова

Я сталкивался ошибка синтаксиса ошибки parse errror Неожиданный токен < [object, object] Когда я возвращаю значение из базы данных.

Я не уверен:

  1. ли я передать данные правильно из Аякса запроса, который будет обработан, так как я использовал bindParam так, что переменная может быть пост правильно, но я не вижу результат генерируется.
  2. ли я форматировать вызов Ajax правильный или не ...

Я знаю его много, пожалуйста, помогите мне, потому что я уже застрял на пару часов на нем уже ...

сервера Боковые

quiz_controller.php

switch($_POST['action']) { 
case 'get_users': 
    print $users->getUsers($questID); 
break; 
} 

Quiz.php

$questID = $db->$_POST['qid']; 

class Quiz { 

private $dbh; 

public function __construct($host,$user,$pass,$db) {  
    $this->dbh = new PDO("mysql:host=".$host.";dbname=".$db,$user,$pass);  
} 

//getQuestion : To get single questions related fields 
public function getUsers(){    
    //$sth = $this->dbh->prepare("SELECT a.questID, a.questTitle, a.questDesc, b.qCatName,c.qTypTitle FROM eq_question AS a INNER JOIN eq_question_category AS b ON a.qCatID = b.qCatID INNER JOIN eq_question_type AS c ON a.qTypID WHERE questID= $questID "); 
    $sth = $this->dbh->prepare("SELECT a.questID, a.questTitle, a.questDesc, b.qCatName,c.qTypTitle FROM eq_question AS a INNER JOIN eq_question_category AS b ON a.qCatID = b.qCatID INNER JOIN eq_question_type AS c ON a.qTypID WHERE questID= :parameter "); 
    //$sth->bindParam(':parameter', $questID, PDO::PARAM_STR); 
    $sth->bindParam(':parameter', $questID); 
    $sth->execute(); 
    return json_encode($sth->fetchAll()); 
} 

Client Side

quiz_controller.js

$(function() { 
    $(document).on("click", "button#ct", function(){ getUserList(this); }); 
} 

function getUserList(element) { 
    alert('worked!'); 
    $('#indicator').show(); 
    qid = 3; 
    alert('worked assign qid !'); 
    alert(qid+'is the qid'); 
     $.ajax({ 
      type: "POST", 
      url: "../../equizz/app/controller/quiz_controller.php", 
      dataType: "json", 
      data: { 
      "questID":qid, //page: value in the url php : currentpage: value in js 
      //action: 'get_users' 
      action: 'get_users' 
      }, 
      success: function(data){ 
       alert('data now is '+data); 
       renderUserList(data); 
       $('#indicator').hide(); 
      },//success: function(data) END 
      error: function(XMLHttpRequest, textStatus, errorThrown) { 
       alert('error!'); 
       alert(textStatus+" " + errorThrown +" " + XMLHttpRequest); 
      } //error END 

     });//$.ajax() END 
}//getUserList END 
function renderUserList(jsonData) { 
    //ACW- instead of generate a new table of content. Replace content inside related ID fields! 
    var table = '</nav><!--Top Navigation END--><div class="content black"><div class="title dark-gray-text black grid-parent"><div class="grid-100">'; 
    $.each(jsonData, function(index, user){ 
     table += '<h2 class="title-2" id="qNumberv">'+'Question No.'+user.questID+'</h2>'; 
     table += '</div><div class="grid-100 grid-parent">'; 
     table += '<h1 class="grid-33 mobile-grid-50 " id="qCatv"><!--Question Category-->'+user.qCatName+'</h1>'; 
     table += '<h1 class="center-4text grid-33 mobile-grid-50-text4right " id="strikesv"><!--Strikes-->'+'00 Strikes'+'</h1>'; 
     table += '<h1 class="right right-title right-4text grid-33 mobile-grid-50-text4right " id="scorev"><!--Score-->'+'00 Scores'+'</h1</div></div><!--title END-->'; 
     table += '<section class="question-content"><!--Question Details--><h3 class="question shadow-body grid-100" id="qTitlev" ><!--Question Title-->'+user.questTitle+'</h3>'; 
     table += '<!--Question Description--><p class="question-detail shadow-body grid-100" id="qDescv" >'+user.questDesc+'</p></section></div><!--content END-->';  
    }); 
    $('div#qcontent').html(table); 


} 

Дополнительная информация:

  1. (FIXED) ошибка настороже показывает parse errror syntax error Unexpected token < [object, object]
  2. , о котором prevenDefault(), о его строке, где говорится $.each(jsonData, function(index, user){, но я не знаю, как это исправить.
  3. Сам запрос является совершенным, но я НЕ УВЕРЕН О приборах периметра!

Update:

Я нашел статус моего звонка в файл контроллера ниже:

Request URL:http:.../app/controller/quiz_controller.php 
Request Method:POST 
Status Code:200 OK 
Request Headersview source 
Accept:application/json, text/javascript, */*; q=0.01 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8 
Cache-Control:no-cache 
Connection:keep-alive 
Content-Length:26 
Content-Type:application/x-www-form-urlencoded; charset=UTF-8 
Cookie:PHPSESSID=fpm2m9kl4rd8ijgvqlkmv0kvc5 
Host:10.9.44.118 
Origin:http://10.9.44.118 
Pragma:no-cache 
Referer:http:.../app/equizz/public/index.php 
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 
X-Requested-With:XMLHttpRequest 
Form Dataview sourceview URL encoded 
questID:3 
action:get_users 
Response Headersview source 
Connection:Keep-Alive 
Content-Length:292 
Content-Type:text/html 
Date:Mon, 25 Nov 2013 16:19:43 GMT 
Keep-Alive:timeout=5, max=100 
Server:Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 
X-Powered-By:PHP/5.4.7 

Примечание: я заменил реальный путь файла с ... для безопасности причина.

+0

Я видел, что у вас много предупреждений() для отладки, что вы получаете за каждого? – ilyass

+0

В панели инструментов разработчика браузера вы можете увидеть, какую строку выдает ошибка? check in chrome – shyammtp

+1

'console.log (XMLHttpRequest.responseText)' –

ответ

0

Изменение линии bindParam к

$sth->bindParam(':parameter', $_POST['qid']); 

Fixed остальное.

Надеется, что это может помочь кому-то имеет те же проблемы :)

Btw, я не думаю, что его достаточно обеспеченных.Plz исправить или добавить еще один ответ, если вы хотите его улучшить!

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