JSON данные обработка на Jquery и вывод в HTML

213
16 мая 2018, 06:10

Проблема в том, что не получается из функции, которая принимает данные, взять и обработать данные пользователей.
Прошу помочь и подробно рассказать, как это сделать, ибо перечитал гайды, но нечего не помогло.

function sendRequest(method, params, func) { 
        $.ajax({ 
            url: 'https://api.vk.com/method/friends.search?count=60&fields=photo_100&access_token=----&v=5.72', 
            method: 'GET', 
            dataType: 'JSONP', 
            success: function(data) {console.log(data);} 
            // Получение ответа и вывод в консоле (подразумевается что data это название или обозначение JSON массива 
    }); 
    } 
 
    function loadFriends() { 
        sendRequest('friends.search', {count: 60, fields: 'photo_100'}, function (data) { 
            drawFriends(data); 
        }); 
 
    } 
 
    function drawFriends(data) { 
    // В этом случае JSON файл не дублируется в консоли, не выводит нечего в HTML. 
        var html = ''; 
 
        var f = friends[i]; 
        html += +'<h4>' + f.first_name + '</h4>'; 
 
        var bdjson = $.parseJSON(data); 
        console.log(bdjson); 
        alert (response.item[1]); 
        html += +'<h4>' + bdjson.item[1].first_name + '</h4>';

Answer 1

Попробуйте так.

// Defined to be called from ajax 
$.fn.drawFriends = function (data) { 
  // В этом случае JSON файл не дублируется в консоли, не выводит нечего в HTML. 
  var html = ""; 
  //---------------------------------------------------------------- 
  //         Этот массив неизвестен ??? 
  //---------------------------------------------------------------- 
  var friends = [{first_name: "Petrov"}]; 
  var i = 0; 
  //---------------------------------------------------------------- 
   
  var f = friends[i]; // Is not defined !!!! 
  html += '<h1>' + f.first_name + '</h1>'; 
 
  var bdjson = data;//$.parseJSON(data); // В случае с получением JSON не нужно парсить  
  console.log(data[0]); // debug print 
 
  html += '<h3>' + bdjson[0].name + '</h3><br>'; // first_name changed to name 
  //---------------------------------------------------------------- 
   
  var res = document.getElementById("res"); 
  res.innerHTML += html; 
  //---------------------------------------------------------------- 
   
} 
 
function sendRequest(method, params, func) { 
  $.ajax({ 
    url: 'https://jsonplaceholder.typicode.com/users', // testing JSON 
    method: 'GET', 
    dataType: 'JSONP', 
    success: function(data) { 
      $.fn.drawFriends(data); // Обработка результатов 
    } 
    // Получение ответа и вывод в консоле (подразумевается что data это название или обозначение JSON массива 
  }); 
} 
 
function loadFriends() { 
  sendRequest('friends.search', { 
    count: 60, 
    fields: 'photo_100' 
  }, function(data) { 
    drawFriends(data); 
  }); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<button onclick="sendRequest()">Send</button> 
<div id="res"></div>

Answer 2

Вы передаете callback 'func' в sendRequest, но нигде его не вызываете. Вместо:

success: function(data) {console.log(data);}

Должно быть:

 success: function(data) {func(data);}

Или же:

success: func

У вас же на success просто вызывается функция с console.log

READ ALSO
Как вызвать JavaScript в скрипте Python?

Как вызвать JavaScript в скрипте Python?

Есть плата (raspberry pi3), к цифровым входам которой прицеплена кнопка

210
Как исправить ошибку Google Maps API error: MissingKeyMapError?

Как исправить ошибку Google Maps API error: MissingKeyMapError?

На этом сайте, на некоторых страницах возникает JS предупреждение Google Maps API warning: NoApiKeys https://developersgoogle

186
Отправить отклонённый запрос позже

Отправить отклонённый запрос позже

Внизу приведён код методаПроблема в том, что когда сервер, отправляющий данный запрос перегружен, то он не может отправить данный запрос

203