2017-08-14 76 views
0

我正在編寫一個HTML頁面,以使用AJAX在我的基礎微服務中構建帶有HTTP請求參數(driverid)的URL的GET調用,並以相應的表格格式顯示結果像下面的div:在使用AJAX的GET調用中使用HTTP請求參數

<html> 
    <head>Driver App 
    </head> 
    <body> 
     <form name="submitform" id="submitform"> 
       <input type="submit" value="Refresh"> 
     </form> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

    <script> 

    var driverid = get("driverid"); 
    $('[name="submitform"]').submit(function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     url: "http://localhost:7777/driver/" + driverid + "/ride", 
     dataType: 'json', 
     type: "GET", 
     success: function (result) { 
      //alert(result); 

      var waitingHtml = '<table>'; 
      var ongoingHtml = '<table>' 
      var completedHtml = '<table>'; 

      $.each(result.data, function (i, item) { 

        if (item.status == 0) { 
         var requestTime; 
         if (item.requestTime != 0) { 
          requestTime = new Date(item.requestTime); 
         } 

         var startDate; 
         if (item.startTime != 0) { 
          startDate = new Date(item.startTime); 
         } 
         var endDate; 
         if (item.endTime != 0) { 
          endDate = new Date(item.endTime); 
         } 

         trHTML += '<tr><td>' + item.requestId + '</td><td>' + item.customerId + '</td><td>' + requestTime + '</td><td>' + status + '</td><td>' + item.driverId + '</td><td>' + startDate + '</td><td>' 
          + endDate + '</td></tr>'; 
         }); 
         trHTML +="</table>"; 
         $("#WaitingHolder").html(trHTML); 
        } else if (item.status == 1) { 
         var requestTime; 
         if (item.requestTime != 0) { 
          requestTime = new Date(item.requestTime); 
         } 

         var startDate; 
         if (item.startTime != 0) { 
          startDate = new Date(item.startTime); 
         } 
         var endDate; 
         if (item.endTime != 0) { 
          endDate = new Date(item.endTime); 
         } 

         trHTML += '<tr><td>' + item.requestId + '</td><td>' + item.customerId + '</td><td>' + requestTime + '</td><td>' + status + '</td><td>' + item.driverId + '</td><td>' + startDate + '</td><td>' 
          + endDate + '</td></tr>'; 
         }); 
         trHTML +="</table>"; 
         $("#OngoingHolder").html(trHTML); 
        } else { 
         var requestTime; 
         if (item.requestTime != 0) { 
          requestTime = new Date(item.requestTime); 
         } 

         var startDate; 
         if (item.startTime != 0) { 
          startDate = new Date(item.startTime); 
         } 
         var endDate; 
         if (item.endTime != 0) { 
          endDate = new Date(item.endTime); 
         } 

         trHTML += '<tr><td>' + item.requestId + '</td><td>' + item.customerId + '</td><td>' + requestTime + '</td><td>' + status + '</td><td>' + item.driverId + '</td><td>' + startDate + '</td><td>' 
          + endDate + '</td></tr>'; 
         }); 
         trHTML +="</table>"; 
         $("#CompletedHolder").html(trHTML); 
        } 
      } 
     } 
    }).done (function(data) { }); 
    }); 
    </script> 

    <table> 
    <tr><th>Waiting</th><th>Ongoing</th><th>Completion</th><tr> 
    <tr> 
     <td><div id="WaitingHolder"> 

     </div></td> 

     <td><div id="OngoingHolder"> 

     </div></td> 

     <td><div id="CompletedHolder"> 

     <div></td> 
    </tr> 

    </table> 
    </body> 
</html>  

下面是我將在相應的格塊以表格格式來打印所述樣本數據:

{ 
    "data": [ 
    { 
     "requestId": 44, 
     "customerId": 234, 
     "requestTime": 1502652444000, 
     "status": 2, 
     "driverId": 5, 
     "startTime": 1502652444000, 
     "endTime": 1502652744000 
    }, 
    { 
     "requestId": 52, 
     "customerId": 234234, 
     "requestTime": 1502658544000, 
     "status": 2, 
     "driverId": 5, 
     "startTime": 1502658544000, 
     "endTime": 1502658844000 
    } 
    ] 
} 

在作出請求時,頁面只是加載在沒有錯誤安慰。也沒有對後端進行HTTP調用。我無法用我有限的HTML/JS專業知識來修復它。有人可以幫助我解決這個問題嗎?

+1

你有沒有調試這個呢?你的問題只是說明你正在嘗試做什麼,並沒有提供你正在進行什麼問題的詳細信息。 –

+0

我測試了它並且頁面剛剛刷新。我沒有看到請求被髮送到後端。 –

+0

是正在處理的「提交」事件的形式?您可以使用處理函數的第一行中的警報輕鬆地檢查此內容。這是第一條評論中提到的那種基本的調試信息。 – ADyson

回答

-1

有在你的代碼中的一些邏輯錯誤,我已經整理,

<html> 
    <head>Driver App 
    </head> 
    <body> 
     <form name="submitform" id="submitform"> 
       <input type="submit" value="Refresh"> 
     </form> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

    <script> 

    var driverid = get("driverid"); 
    $('[name="submitform"]').submit(function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     url: "http://localhost:7777/driver/" + driverid + "/ride", 
     dataType: 'json', 
     type: "GET", 
     success: function (result) { 
      //alert(result); 

      var waitingHtml = '<table>'; 
      var ongoingHtml = '<table>' 
      var completedHtml = '<table>'; 

      $.each(result.data, function (i, item) { 

        if (item.status == 0) { 
         var requestTime; 
         if (item.requestTime != 0) { 
          requestTime = new Date(item.requestTime); 
         } 

         var startDate; 
         if (item.startTime != 0) { 
          startDate = new Date(item.startTime); 
         } 
         var endDate; 
         if (item.endTime != 0) { 
          endDate = new Date(item.endTime); 
         } 

         waitingHtml += '<tr><td>' + item.requestId + '</td><td>' + item.customerId + '</td><td>' + requestTime + '</td><td>' + status + '</td><td>' + item.driverId + '</td><td>' + startDate + '</td><td>' 
          + endDate + '</td></tr>'; 

        } else if (item.status == 1) { 
         var requestTime; 
         if (item.requestTime != 0) { 
          requestTime = new Date(item.requestTime); 
         } 

         var startDate; 
         if (item.startTime != 0) { 
          startDate = new Date(item.startTime); 
         } 
         var endDate; 
         if (item.endTime != 0) { 
          endDate = new Date(item.endTime); 
         } 

         ongoingHtml += '<tr><td>' + item.requestId + '</td><td>' + item.customerId + '</td><td>' + requestTime + '</td><td>' + status + '</td><td>' + item.driverId + '</td><td>' + startDate + '</td><td>' 
          + endDate + '</td></tr>'; 

        } else { 
         var requestTime; 
         if (item.requestTime != 0) { 
          requestTime = new Date(item.requestTime); 
         } 

         var startDate; 
         if (item.startTime != 0) { 
          startDate = new Date(item.startTime); 
         } 
         var endDate; 
         if (item.endTime != 0) { 
          endDate = new Date(item.endTime); 
         } 

         trHTML += '<tr><td>' + item.requestId + '</td><td>' + item.customerId + '</td><td>' + requestTime + '</td><td>' + status + '</td><td>' + item.driverId + '</td><td>' + startDate + '</td><td>' 
          + endDate + '</td></tr>'; 

        } 

      }); 
        waitingHtml+='</table>'; 
        $("#WaitingHolder").html(waitingHtml); 
        ongoingHtml+='</table>'; 
        $("#OngoingHolder").html(ongoingHtml); 
        completedHtml+='</table>'; 
        $("#CompletedHolder").html(completedHtml); 

     } 
    }); 
    </script> 
    <div id="WaitingHolder"></div> 
    <div id="OngoingHolder"></div> 
    <div id="CompletedHolder"></div> 
</body> 
</html> 
+0

@穆罕默德:它不能解決問題 –

+0

從你從哪裏獲得驅動程序ID,你檢查過JSON響應是否正常? –

+0

@MuhammadAkberKhan根據原始問題「也沒有對後端進行HTTP調用」。所以這個問題很可能會在ajax請求發出之前發生,而不是之後。雖然你的改變可能很有用,但它們似乎沒有解決問題的根源。 – ADyson