OMG, я нуждаюсь в способе настройки массивов XML запросов, основанные на idShout - 1.Multi-массив XML запросы
Так было бы что-то вроде этого ...
var req = new Array();
req[idShout - 1] = ALL XML Data...
Вот что я до сих пор, но это не работает вообще :(
var idShout;
var req = new Array();
function htmlRequest(url, params, method)
{
req[req.push] = ajax_function();
for (i=0;i<req.length;i++)
{
(function (i) {
if (req[i])
{
if (method == "GET")
{
req[i].onreadystatechange = function()
{
if (req[i].readyState != 4)
return;
if (req[i].responseText !== null && req[i].status == 200)
{
document.getElementById("shoutbox_area" + idShout).innerHTML = req[i].responseText;
}
}
}
req[i].open(method,url,true);
if (method == "POST")
req[i].setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
if (params == "")
req[i].send(null);
else
req[i].send(params);
return req[i];
}
else
return null;
})(i);
}
}
function ajax_function()
{
var ajax_request = null;
try
{
// Opera 8.0+, Firefox, Safari
ajax_request = new XMLHttpRequest();
}
catch (e)
{
// IE Browsers
try
{
ajax_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
ajax_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
//No browser support, rare case
return null;
}
}
}
return ajax_request;
}
function send(which)
{
var send_data = "shoutmessage=" + document.getElementById("shout_message" + which).value;
var url = smf_prepareScriptUrl(smf_scripturl) + "action=dreamaction;sa=shoutbox;xml;send_shout="+ which;
htmlRequest(url, send_data, "POST");
document.getElementById("shout_message" + which).value = "";
document.getElementById("shout_message" + which).focus();
return true;
}
function startShouts(refreshRate, shoutCount)
{
clearInterval(Timer[shoutCount-1]);
idShout = shoutCount;
show_shouts();
Timer[shoutCount - 1] = setInterval("show_shouts()", refreshRate);
return;
}
function show_shouts()
{
var url = smf_prepareScriptUrl(smf_scripturl) + "action=dreamaction;sa=shoutbox;xml;get_shouts=" + idShout;
htmlRequest(url, "", "GET");
}
Любая помощь на всех по этому вопросу было бы весьма признателен ... в принципе, я устанавливаю массивы таймера в другой функции до это, и я вызываю startShouts, который должен отображать всю информацию, но startShouts получает вызов более одного раза, поэтому у меня idShout установлен равным shoutCount. Таким образом, это будет выглядеть примерно так: shoutCount = 1, shoutCount = 2, shoutCount = 3, каждый раз, когда он вызывается. Итак, я устанавливаю массив req [idShout - 1] и он должен возвращать результат правильно?
Ну, у меня нет ошибок в Firefox на консоли с этим кодом выше, но это не работает ... Любые идеи кто-нибудь ??? Поскольку он должен выводиться в более чем 1 область ... argg.
Спасибо за любую помощь вы можете предложить здесь :)
Спасибо, ребята :)
Кроме того, немного больше информации об этом ... В принципе есть 1 или более Shoutboxes на любой странице (Не спрашивайте, почему?), Мне нужно получить информацию об этом и поместить ее в document.getElementById («shoutbox_area» + idShout), так как idShout для каждого элемента изменяется с шагом 1 на каждый Shoutbox, который на этой странице. Значения для Shoutbox могут быть разными, например, refreshRate может быть другим. 1 Shoutbox может иметь частоту обновления, равную 2000 миллисекундам, тогда как другая может иметь скорость 250 миллисекунд, они должны быть разными и обновляться в то время, которое определено для них, поэтому я решил создать массив Timer , хотя не уверен, что я настроил массив Timer так, как он предназначен для установки для функции setInterval. Вот как это получить сделано в другом яваскрипте функции, которая выполняется непосредственно перед startShouts вызывается ...
Эта часть находится за пределами функции и внутри самого документа:
var Timer = new Array();
И эта часть в функции ...
Timer[shoutCount - 1] = "";
Так что не уверен, что это правильно настроено для таймеров ...?
Спасибо, я сделал следующие изменения и введенной его выше в вопросе, но ничего не изменилось и все еще ничего в элементах ... ?? Еще никаких ошибок, но в любом из элементов нет ничего ... ?? – SoLoGHoST
Кроме того, теперь я использую метод вместо HTTPMethod, но он не должен иметь никакого значения ... – SoLoGHoST
Хорошо, я изменил этот 'req [req.push] = ajax_function();' на этот 'req [idShout - 1] = ajax_function(); 'и теперь он работает для последнего крикбокса, но он не показывает какую-либо информацию для нее до этого ?? Есть идеи? – SoLoGHoST