У меня есть проблема со встроенным XMLHttpRequest;
Поток данных должен быть следующим:
Interface.php использует modifyRecords.js (XMLHttpRequest) для вызова информации из modifyRecords.php, который, в свою очередь, использует showRecords.js< /em> (XMLHttpRequest) для вызова информации из showRecords.php.
Если бы я мог каким-то образом это сделать, это сэкономило бы кучу копий и/или переписываний кода.
Когда я возвращаюсь, чтобы найти, где находятся ошибки, не возникает никаких проблем, showRecords.php и modifyRecords.php загружаются нормально по отдельности, просто когда AJAX вызывает другой AJAX полностью ломается.
Суть в следующем:
Мой пользовательский интерфейс вызывает modifyRecords.js, который выглядит следующим образом:
function modifyRecords(cell,report,column,oldValue)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
var xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(cell).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","modifyRecords.php?report="+report+"&column="+column+"&oldValue="+oldValue,true);
xmlhttp.send();
}
modifyRecords.php вызывает другую функцию AJAX с именем showRecords.js;
function showRecords(str,column,nextDiv,oldValue)
{
if (str== null)
{
document.getElementById(nextDiv).innerHTML="----------------------------------------";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
var xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(nextDiv).innerHTML=xmlhttp.responseText;
document.getElementById(nextDiv).value = oldValue ;
}
}
xmlhttp.open("GET","showRecords.php?"+column+"="+str,true);
xmlhttp.send();
}
Проблема в том, что каждый из них работает изолированно, однако, когда я использую одну функцию AJAX для вызова страницы, которая зависит от второй функции AJAX, записи не загружаются.
Я знаю, что это как-то связано с синхронностью, потому что мое единственное предположение состоит в том, что страница, на которую ссылаются, еще не закончила загрузку, когда ее вызывает функция ссылки.
Я попытался установить для параметров значение «false» для синхронного вместо обычного асинхронного, однако это нарушает любую функцию.
Какое решение было бы лучшим?
Я подумал об объединении всех моих функций AJAX, что потребовало бы тонны переписывания, чтобы сделать их более универсальными и функциональными для обеих сред.
alert()
повсюду и смотреть, где они останавливаются? - person Ilia G   schedule 23.10.2011innerHTML
скрипты. Извините, это было лучшее, что я мог дать, не зная, что сказал ответчик. Я не думал размещать оповещения повсюду, это кажется хорошим методом отладки на будущее. Спасибо. - person Dương Văn   schedule 24.10.2011