Вопрос про Аякс - PullRequest
       1

Вопрос про Аякс

2 голосов
/ 17 мая 2010

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

У меня такой вопрос: если бы я хотел, чтобы 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();
}

Ответы [ 2 ]

6 голосов
/ 17 мая 2010

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

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();
}
1 голос
/ 17 мая 2010

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

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

$('#games').load('hw9.database.php?name=' + str );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...