2010-05-17 4 views
2

Я изучаю Ajax в данный момент. Код ниже в основном получает эхо от PHP, а затем помещает его в идентификатор элемента games.Вопрос об Ajax

Мой вопрос заключается в том, что если бы я хотел, чтобы Ajax отправил 3 разных HTTP-запроса на 3 разных PHP-скрипта, и если бы я хотел получить данные от каждого из них, а затем поместить его в 3 разных идентификатора элемента, тогда я бы сделал 3 копии эта же функция? Я бы предположил, что должен быть более эффективный способ.

function showHint(str) { 
    if (window.XMLHttpRequest) { 
     xmlhttp=new XMLHttpRequest(); 
    } else { 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange=function() { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
      document.getElementById("games").innerHTML=xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("GET","hw9.database.php?name="+str,true); 
    xmlhttp.send(); 
} 

ответ

6

Там нет необходимости делать это. Вам просто нужно параметризовать функцию:

function showHint(elementid,url,str) { 

    if (window.XMLHttpRequest) { 
     xmlhttp=new XMLHttpRequest(); 
    } else { 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange=function() { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
      document.getElementById(elementid).innerHTML=xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("GET",url+str,true); 
    xmlhttp.send(); 
} 
+0

Ahh !! Я вижу! Это будет хорошо работать! – Strawberry

1

Существует. Используйте фреймворк JavaScript, например jQuery, Prototype или любой другой. Все они имеют встроенную функциональность Ajax, которая делает вещи, которые вы хотите добиться намного проще.

запрос Пример JQuery Ajax:

$('#games').load('hw9.database.php?name=' + str); 
+0

Это точно не отвечает на мой вопрос, а не грубить. – Strawberry

+0

На самом деле, он улучшил решение вашего ответа. – RandyMorris

Смежные вопросы