簡體   English   中英

Ajax-如何獲取數據

[英]Ajax -How to Fetch data

我一直在嘗試使用AjAX來獲取數據。 以下是具有輸入值的HTML表單的代碼。 數據值通過提交按鈕被推送到python處理程序。 在服務器端,python處理程序將數據存儲在數據庫中。

現在,我需要先通過AJAX從數據庫中獲取數據,並顯示是否存在現有值。 數據包含“是或否”狀態,因此非常簡單。 但是我不知道如何使用ajax來獲取數據,以及如何根據獲取的數據正確設置輸入值。 問題是,如何通過Ajax調用處理程序以返回值?

 <html> <script language="javascript" src="https://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script> <script language="javascript" type="text/javascript"> send_data = function(status) { $.ajax({ url: "/Subscription", dataType: "json", data: {'status' : status}, type: "POST", cache: false }).done(function(data, status, xml) { var obj = jQuery.parseJSON(data); alert(obj.success); }).fail(function(jqXHR, textStatus, errorThrown) { }).always(function() { }); } $(document).ready(function() { $("#subscription").submit(function() { send_data($("#switch-1").prop('checked') ? 'yes' : 'no'); return false; }); }); </script> </head> <body> <form id="subscription" action="" method="post"> <label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="switch-1"> <input type="checkbox" id="switch-1" class="mdl-switch__input" id="status" name="status" /> <span class="mdl-switch__label">blemtorp@google.com subscription status is: << subscription >> </span> <input type="submit" value="Submit" /></label> </form> </body> </html> 

非常感謝。 任何提示將非常有幫助。

要基於用戶輸入執行異步調用,您必須發出請求,然后顯式指定要在請求中執行的操作成功,失敗等。

例如:

function send_data(shouldRequest, successCallback) {

  // if ...prop('checked'), run ajax request
  if (shouldRequest) {
    $.ajax({
      url: "/Subscription",
      dataType: "json",
      data: {'status' : status},
      type: "POST",
      cache: false
    }).done(function(data, status, xml) {

      // when request completes, run callback function
      successCallback(data);
    });
  }

}

$("#subscription").submit(function() {
  var checked = $("#switch-1").prop('checked');

  var successCallback = function(data) {
    // perform success actions on data here
  }

  send_data(checked, successCallback);
});

如果將successCallback傳遞給send_data函數,則只有在異步調用成功完成后才能運行該函數。 您還可以傳入其他函數來處理錯誤等。

您還可以傳入其他函數來處理來自ajax請求的不同結果,例如處理錯誤的函數。

通過在ajax中設置dataType:"json" ,無需在done()回調上使用JSON.parse()

根據您的json使用data.successdata.status

示例json響應{'success':'yes'}{'status':'yes'}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM