我有一個JavaScript文件中的AJAX函數,我希望它是抽象的,而不是使用任何全局變量。我可以使用一個函數作爲參數嗎?
的AJAX可以將事件插入數據庫:
function insertCalendarEvents(calendar_group, event_name, event_datestart, event_datestop, event_timestart, event_timestop, event_info, onFinish) {
var request;
if(window.XMLHttpRequest)
request = new XMLHttpRequest();
else
request = new ActiveXObject("Microsoft.XMLHTTP");
request.onreadystatechange = function() {
if (request.readyState == 4 && request.status == 200) {
if(request.responseText.substr(0, 6) == "error ")
alert(errorName[request.responseText.substr(6)]);
else {
var event_id = request.responseText;
//call onFinish function with parameter event_id which database assigned it
}
}
}
request.open("GET", "php/calendar.php?action=insertCalendarEvents&calendar_group=" + calendar_group + "&event_name=" + event_name + "&event_datestart=" + event_datestart + "&event_datestop=" + event_datestop + "&event_timestart=" + event_timestart + "&event_timestop=" + event_timestop + "&event_info=" + event_info, true);
request.send();
}
功能是異步的所以我想要做的是,目前它完成了數據插入到數據庫中,我希望它執行函數,我將它作爲參數。
如果有關於如何做到這一點一個更好的主意,我會很高興聽到它:)
謝謝你在前進,牛!
你嘗試'onFinish(事項標識)'? – pimvdb 2012-03-23 11:34:08
我只是試了一下,它似乎工作:) 我在哪裏調用我使用的函數(function(){// stuff});在參數區域 – 2012-03-23 11:37:50
內部,您可能需要考慮使用JavaScript庫(例如jQuery:http://api.jquery.com/jQuery.ajax/)來幫助您處理Ajax調用 – jlb 2012-03-23 11:41:36