Как отобразить данные, извлеченные из вызова API, который является двумерным массивом - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь вызвать API и отобразить данные в виде списка, проблема, с которой я сталкиваюсь, заключается в том, что я могу разбить список и отобразить его на HTML-странице, но мне нужно отобразить соответствующую меткуданные.Любая помощь в этом отношении высоко ценится.Спасибо ..

Данные, которые я получил от вызова API:

[[236,1, "1537890525704.jpg", "", "Жилой", "Аренда", 1200], [235,1, null, "", "Residential", "Rent", 10000]]

Способ отображения данных на моей HTML-странице:

enter image description here

Я хочу отобразить соответствующий ярлык для данных, например: Код недвижимости: 236 Количество спален: 1 Тип недвижимости: Жилой и т. Д...

client.html

<html>
    <head>
        <title>Test client application</title>
             <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
              <script src="cleint.js"></script> 
             <style>
                .card {
                    box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
                    transition: 0.3s;
                    width: 40%;
                }

                .card:hover {
                    box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
                }

                .container {
                    padding: 2px 16px;
                }
                </style>

    </head>

    <body>


        <p id="msgs" class="card container"></p>

client.js

$(document).ready(function() {   
    $.ajax({
       url: "http://192.168.1.5:8000/fetch",
       success: function(data){        
          var c=data;
         }
    }).then(function(data) {
       var text = "";
       var res = "";
       var i;
       for(var i=0; i<data.length; i++){
        var prop = data[i];
           for(var j=0;j<prop.length;j++){
            $('#msgs').append($('<div>').text(prop[j]));

           }

       }



    });

    function display(str) {
        $('#msgs').append($('<div>').text(str));
     }

    });

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Если у вас есть фиксированный набор данных в одном массиве, вы можете изменить его на ..

then(function(data) {
   var text = "";
   var res = "";
   var i;
   for(var i=0; i<data.length; i++){
    var prop = data[i];
        $('#msgs').append($('<div>').text("Property Id:"+ prop[0]));
        $('#msgs').append($('<div>').text("No. of Bedrooms:"+ prop[j]));
});

, это может вам помочь.

0 голосов
/ 22 ноября 2018

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

var data = [
  [236, 1, "1537890525704.jpg", "", "Residential", "Rent", 1200],
  [235, 1, null, "", "Residential", "Rent", 10000]
]

data.forEach(function(prop) {
  var html = `<p>Property Id: ${prop[0]}</p><p>No. of Bedrooms: ${prop[1]}</p><p>Property Type: ${prop[4]}</p>`;
  $('#msgs').append(`<div>${html}</div>`);
});
#msgs div {
  border: 1px solid #C00;
  padding: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="msgs"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...