2013-07-11 3 views
2

Я новичок в системе codeignitor и json. Я хочу получить данные из базы данных, когда пользователь нажимает на URL-адрес, но я получаю сообщение об ошибке.Ошибка ответа JSON в codeignitor

Мой сценарий:

function abc(i) 
{ 
    if(i == 1) 
    { 
    $.ajax({ 
     type: "post", 
     url: "<?php echo base_url('welcome/liststd');?>", 
     data: 'postData='+ i , 
     success: function(json) 
     { 
     var abc = json; 
     document.getElementById("fname").innerHTML=abc[0].fname; 
     } 
    }); 
    } 
} 

Firebug Ответ:

[ 
    { 
    "id":"31", 
    "fname":"Darshan", 
     "mname":"D", 
     "lname":"Dave", 
     "std":"1", 
     "marks":"12000", 
     "image":"image31.jpg", 
     "id1":"1", 
     "in_date":"0000-00-00", 
     "upd_date":"2013-07-10" 
    }, 
    { 
     "id":"34", 
     "fname":"Darshan", 
     "mname":"D", 
     "lname":"Dave", 
     "std":"1", 
     "marks":"12000", 
     "image":"image34.jpg", 
     "id1":"1", 
     "in_date":"2013-07-06", 
     "upd_date":"2013-07-09" 
    } 
    ] 

Когда я предупредит json в функции success он показывает мне это:

[ 
    { 
    "id":"31", 
    "fname":"Darshan", 
     "mname":"D", 
     "lname":"Dave", 
     "std":"1", 
     "marks":"12000", 
     "image":"image31.jpg", 
     "id1":"1", 
     "in_date":"0000-00-00", 
     "upd_date":"2013-07-10" 
    }, 

Что моя ошибка?

+0

Очень хорошо задаваемый вопрос. Специфика, код, некоторая отладка, которую вы уже сделали, отличные вещи. Одна маленькая вещь для будущих вопросов: вместо «Я получил некоторую ошибку», скажите **, что **, точно, ошибка. –

+0

@ T.J.Crowder okey thnx для вашего ответа ... :) – darshan

ответ

3

Вы не разбираетесь в JSON. Добавьте dataType : 'json' к вызову ajax. Это скажет jQuery для автоматического анализа JSON для вас.

$.ajax({ 
    type: "post", 
    url: "<?php echo base_url('welcome/liststd');?>", 
    data: 'postData=' + i, 
    dataType: 'json', // <----- tell jQuery to parse the JSON 
    success: function (json) { 
     var abc = json; 
     document.getElementById("fname").innerHTML = abc[0].fname; 
    } 
}); 
+0

* «Добавить« dataType: «json'' в вызов ajax» * Или еще лучше, чтобы сервер вернул правильный «Content-Type». –

+0

Да, хорошая точка, это тоже сработает :) – MrCode

+0

@MrCode hey thnx man ... :) – darshan

0
try this in your response... 
also in your $.ajax tell jquery to parse json 
dataType: 'json' 
in your response.. 
var response = JSON.parse(json); 
response.fname; 
+0

Это всего лишь дубликат ответа, который был здесь 10 минут назад. Кроме того, пожалуйста, обратитесь к разделу ** Как форматировать ** рядом с областью редактирования при вводе текста и области предварительного просмотра, где вы можете видеть, как будет выглядеть ваш ответ. –