2013-09-03 3 views
0

невозможно выполнить несколько вызовов ajax с использованием только javascript и без использования JQuery. Я попытался ниже яваскрипта кода с двумя Ajax вызовов, но код не работает, когда я поместить второй АЯКС позвонитьнесколько вызовов ajax с использованием только javascript

<script type="text/javascript"> 

var class1; 
var class2; 
var sec1; 
var sec2; 

function func() 
{ 
class1 = document.getElementById('selcla'); 
class2 = class1.options[class1.selectedIndex].value; 

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) 
     { 
     document.getElementById("secdiv").innerHTML=xmlhttp.responseText; 
     } 
     } 
xmlhttp.open("GET","getsec.php?q="+class2,true); 
xmlhttp.send(); 

} 


function funcsec() 
{ 
sec1 = document.getElementById('selsec'); 
sec2 = sec1.options[sec1.selectedIndex].value; 
alert("selecting class and section details " + class2 + " " + sec2); 

    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) 
     { 
     alert("successfully received "); 
     document.getElementById("studiv").innerHTML=xmlhttp.responseText; 
     } 
    else 
     alert("unsuccessful ajax second call "); 
     } 
xmlhttp.open("GET","getstu.php?x="+class2"&y="+sec2,true); 
xmlhttp.send(); 
} 

+3

Вы должны приложить больше усилий для форматирования кода, если вы ожидаете, что люди его прочитают. – musefan

ответ

0

это, но вам нужен другой «XmlHttp» обработчик для каждого запроса вам делать. Установите новый объект xmlhttp и сделайте второй запрос с новым объектом.

Мое предложение состоит в том, чтобы разбить часть с инициализацией объекта xmlhttp, в автономную функцию и использовать ее для создания нескольких экземпляров этих объектов.

Однако я должен посоветовать против такого подхода. Лучше использовать библиотеку для запросов ajax.

+0

Если вы создаете функцию для создания новых объектов xmlhttp, вы также захотите установить что-то, что позволит вам передать функцию в качестве обратного вызова чтобы справиться с успехом этого ajax-вызова, и, возможно, другим, когда есть ошибка. Таким образом, у вас не будет много повторяющегося кода. –