[英]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.success
或data.status
。
示例json響應{'success':'yes'}
或{'status':'yes'}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.