Я согласен с scessor, что вторая функция должна быть выполнена в пределах первой - в случае успеха.Вот моя AJAX-функция, без каких-либо jquery или необходимых:
function ajax_call_1(divId, params)
{
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
if(divId!='')
document.getElementById(divId).innerHTML=xmlhttp.responseText;
else{
// do something else
}
ajax_call_2('html_id', 'parameters_to_be_send')
}
}
xmlhttp.open("POST", "script_url", true); //file
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length); //length
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params); //parameters
}
И вторая функция такая же, но без вызова функции в случае успеха:
function ajax_call_2(divId, params)
{
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
if(divId!='')
document.getElementById(divId).innerHTML=xmlhttp.responseText;
else{
// do something else
}
}
}
xmlhttp.open("POST", "script_url", true); //file
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length); //length
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params); //parameters
}
ajax_call_1 аргументы функцииявляются:
divId : идентификатор элемента html, который будет содержать результат после вызова AJAX
params : параметры, которые должны быть отправлены сзапрос, т. е. идентификатор, имя или какое-либо другое значение, которое вам нужно отправить.
Если честно, эти 2 функции не очень многоразовы.Я нахожусь в процессе изменения их, чтобы они стали более абстрактными, чтобы они могли использоваться для каждых 2 одновременно сделанных AJAX-вызовов, но пока они хорошо справляются со своей работой.