2016-07-26 8 views
-1

Ich habe ein Formular I-Daten sammeln aus und dann habe ich sie in URL-Zeichenfolge einzufügen, so erhalte ich URL wie http://terminal2.expedia.com/x/mhotels/search?city=hersbruck&checkInDate=2016-12-01&checkOutDate=2016-12-03&room1=2&apikey=RZjKNligNc0QZJvV9HP1nbFm1jrghgLK Diese URL gültig json kehrt direkt auf der SeiteIterate durch json auf der Homepage (jquery)

{ 
    numberOfRoomsRequested: 1, 
    filterUnavailableHotelsRequested: false, 
    totalHotelCount: 94, 
    availableHotelCount: 60, 
    searchRegionId: "6124915", 
    searchRegionCity: "Hersbruck", 
    deepLinkUrl: "https://www.expedia.com/Hersbruck-Hotels.d6124915.Travel-Guide-Hotels", 
    hotelList: [ 
     { 
    sortIndex: "0", 
    hotelId: "2813073", 
    name: "Md Hotel Restaurant Bauer", 
    localizedName: "Md Hotel Restaurant Bauer", 
    nonLocalizedName: "Md Hotel Restaurant Bauer", 
    address: "Martin Luther Str 16", 
    city: "Hersbruck", 
    ........ 

und ich versuchen, einige Daten von ihm zu bekommen Tabelle zu erstellen, mit einem solchen Code:

$(document).ready(function(){ 

    $('#submit-btn').click(function(s) { 
    $("form").submit(function (event) { 
     var place = (document.querySelectorAll('#place')[0].value); 
     var check_in = (document.querySelectorAll('#check-in')[0].value); 
     var check_out = (document.querySelectorAll('#check-out')[0].value); 
     var api_key = "RZjKNligNc0QZJvV9HP1nbFm1jrghgLK"; 
     var url = "http://terminal2.expedia.com/x/mhotels/search?city=" + place + "&checkInDate=" + check_in + "&checkOutDate=" + check_out + "&room1=2&apikey=" + api_key + "" 

     $.getJSON(url, function (data){ 
      var div = $("#result"); 
      var table = '<table><tbody>'; 
      for (i in data) { 
       var tr = '<tr><td>'+data[i].name+'</td><td>'+data[i].city+'</td></tr>' 
       table = table+tr; 
      } 
      table = table + "</tbody></table>"; 
      div.html(table); 
      }); 
     event.preventDefault(); 
    }); 
    }); 
}); 

aber ich empfange Tisch mit undefined Was ich falsch gemacht, mich bitte darauf hin.

Antwort

0

Ich vermute, Sie möchten die Hotels von der HotelList angezeigt, die von der API zurückgegeben werden. Dann wäre Ihre Schleife nicht mehr wie:

for (hotel in data.hotelList) { 
    var tr = '<tr><td>'+ hotel.name+'</td><td>'+ hotel.city+'</td></tr>' 
    table = table+tr; 
} 

Ich wechselte ich für das Hotel wegen der Klarheit.

Aber da ich den ganzen JSON nicht sehen kann, weiß ich nicht, ob meine Vermutung richtig ist.

+0

Das ist die richtige Idee, aber 'Hotel' ist der Index, nicht der Wert. Sie sollten Arrays mit for..in trotzdem nicht durchlaufen. – JJJ

+0

Sie können klicken Sie auf URL in oben und sehen Sie die ganze JSON – Andriy

+0

@ Gabrielle Bastien danke für die Idee. Es funktioniert, wenn ich 'var tr tun = ' '+ data.hotelList [i] .name +' '+ data.hotelList [i] .city +''' Aktualisieren Sie antworten für mich zu wählen, wenn Sie wollen . – Andriy