2015-12-10 4 views
-1

, пожалуйста, ваша помощь, у меня проблема в моем запросе ajax. У меня есть текстовые данные, возвращаемые и я хочу, чтобы преобразовать его в формат JSON с помощью json_parse но does't работатьJSON не работает в javascript ajax request

данные, которые вернуться из запроса AJAX выглядит следующим образом:

data = "{"name":"ehab","mobile":"xxx"}{"name":"Hamza","mobile":"zzzz"}" 

я хочу, чтобы преобразовать эти данные для JSon я использую следующий запрос Ajax

$.ajax({ 
       type: "POST", 
       url: "getGroup.php", 
       data: { "searchText" : number}, 
       success: function(data) 
       { 
       data = JSON.parse(data); 

       debugger; 
       }, 
       error: function (error) { 
       debugger; 
       } 

, если я использую это сообщение об ошибке возвращает путь

Uncaught SyntaxError: Unexpected token { 

мой PHP массив файл

$sql ="select * from recipients where `groupid`='$searchText'"; 

     $res = mysql_query($sql); 
     $num = mysql_num_rows($res); 
     $data=''; 
     if(mysql_num_rows($res)> 0) 
        { 
        for($i=0;$i<mysql_num_rows($res);$i++) { 
        $row=mysql_fetch_assoc($res); 


        $output = array('name'=>$row['rec_name'], 
       'mobile'=>$row['mobile_number']); 

        echo json_encode($output); 
        } 

пожалуйста совет

+1

http://jsonlint.com/ проверьте свой формат json. –

ответ

4

JSON недействителен

{"name":"ehab","mobile":"xxx"}{"name":"Hamza","mobile":"zzzz"} 
Here -------------------------^ 

Вы не можете иметь два объекта на самом высоком уровне, как это.

Вы могли бы сделать это массив, обернув его в [...] и разделения записей с ,:

[{"name":"ehab","mobile":"xxx"},{"name":"Hamza","mobile":"zzzz"}] 

Тогда вы бы получить доступ к нему, как это:

console.log(data[0].name); // "ehab" 
console.log(data[1].name); // "Hamza" 

Или с помощью цикла, forEach и т. Д.


Сторона нет te: Если ваш сервер вернет правильно идентифицированный, действительный JSON, jQuery проанализирует его для вас перед вызовом функции success, поэтому вам не нужно использовать JSON.parse в вашем коде.

+0

Не могли бы вы помочь мне написать массив JSON? $ sql = "select * from получателей, где' groupid' = '$ searchText' "; \t \t $ res = mysql_query ($ sql); \t \t $ num = mysql_num_rows ($ res); \t \t $ data = ''; \t \t, если (mysql_num_rows ($ разреш)> 0) \t \t \t \t \t { \t \t \t \t \t для ($ I = 0; $ г $ строки [ 'rec_name'], 'мобильного' => $ строки [ 'mobile_number']) ; \t \t \t \t \t echo json_encode ($ output); \t \t \t \t \t} –

+0

я добавить код PHP в вопрос, пожалуйста, ваша помощь, чтобы написать массив JSON в правильном пути –

+0

Создать массив. Добавляйте новый объект каждый раз, когда вы обходите цикл. Преобразуйте * только * * конечный результат * в JSON. – Quentin

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