Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2009, 10:19   #1
Dymytry
Новичок
Джуниор
 
Регистрация: 13.01.2009
Сообщений: 3
По умолчанию Простейший AJAX, что не так сделал?

Парни, помогите разобраться с Аяксом!

Я пытаюсь сделать простенькую функцию чтобы понять как это все работает. Моя функция должна обращаться к Lotus Domino базе и брать оттуда JSON, далее помещать его в таблицу на странице. Весь код я скопировал из статей в инете и чуток изменил. По кнопке на странице вызывается MSDNAjax(url, viewtableid).
Так вот, у меня очень странный результат: все работает, только если в коде функции MSDNAjax стоит alert! Так, как указано в коде ниже. Если я его убираю - ничего не работает. Не могу понять, что я не так сделал.. Как так может быть вообще?

Код:
 
//globals------------------------------------------------------------------------
var oReq = getXMLHttpRequest();
//end of globals--------------------------------------------------------------
 
//standart XMLHttpRequest object initialization-----------------------------
function getXMLHttpRequest()
{
var http_request = false;
 
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
 
return http_request;
}
 
 
//main ajax call------------------------------------------------------------
function MSDNAjax(url, viewtableid)
{
 
if (oReq != null) {
    oReq.open("GET", url, true);
    oReq.send();
    alert('strange alert');
    oReq.onreadystatechange = DisplayView(eval( "(" + oReq.responseText + ")"), viewtableid);
}
else {
    window.alert("AJAX (XMLHTTP) not supported.");
}
}
 
 
//display information----------------------------------------------------
function DisplayView(res, viewtableid)
{
    if (oReq.readyState == 4) {
        if (oReq.status == 200) {
 
                var vec=res.viewentry;
                var thetable="";
 
var tableobj = document.getElementById(viewtableid);
 
                for (i=0; i<vec.length; i++)
                {
                        var rowobj = tableobj.tBodies[0].insertRow(0);
                        for (j=0; j<vec[i].entrydata.length; j++)
                        {
                                var cellobj = rowobj.insertCell(0);
                                cellobj.appendChild(document.createTextNode(vec[i].entrydata[j].text[0]));
                        }
                }
                
        }
    }
}
Dymytry вне форума Ответить с цитированием
Старый 14.12.2009, 12:19   #2
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

А так пробывал ?

Код HTML:
if (oReq) {
    oReq.open("GET", url, true);
    oReq.onreadystatechange = DisplayView(eval( "(" + oReq.responseText + ")"), viewtableid);
    oReq.send(null);
}
slips вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что не так? Alexcomeback Общие вопросы C/C++ 9 07.04.2009 23:14
Что не так? Viento Microsoft Office Excel 3 30.01.2009 14:38
Что я не так сделал в игре???Подскажите. spamer Общие вопросы Delphi 1 06.01.2009 23:04
Сделал WAP сайт, а что дальше? Maybe HTML и CSS 10 20.07.2008 13:48