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

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

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2014, 14:08   #11
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Вангую, вам нужно так:
Код:
function changeload()
{
    var objElement = document.getElementById("selectBoxId");
    newAJAXCommand('/protect/lnsel.cgi?linesel='+objElement.selectedIndex, function() {
        newAJAXCommand('/protect/linesstat.xml', updateStatus);
    });
}
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 09.11.2014, 18:45   #12
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
Вангую, вам нужно так:
Код:
function changeload()
{
    var objElement = document.getElementById("selectBoxId");
    newAJAXCommand('/protect/lnsel.cgi?linesel='+objElement.selectedIndex, function() {
        newAJAXCommand('/protect/linesstat.xml', updateStatus);
    });
}
Увы ... не сработало. функция не срабатывает ...
смотрел в отладчике IE ошибок нету, но сниффер показывает что запроса после цги не было.
Хотя вот нашел.

Две одинаковые страницы. На одной все нормально а на второй возникает ошибка при попытке запуска callback функции...

Код:
function pollAJAX() {
	
	var curAjax = new Object();
	var theTimer = new Date();
	var elapsed;
	
	// Read off the ajaxList objects one by one
	for(i = ajaxList.length; i > 0; i--)
	{
		curAjax = ajaxList.shift();
		if(!curAjax)
			continue;
		elapsed = theTimer.getTime() - curAjax.lastCalled;
				
		// If we suceeded
		if(curAjax.ajaxReq.readyState == 4 && curAjax.ajaxReq.status == 200) {
			// If it has a container, write the result
			if(typeof(curAjax.container) == 'function'){
тут ошибка-->	curAjax.container(curAjax.ajaxReq.responseXML.documentElement);
			} else if(typeof(curAjax.container) == 'string') {
				document.getElementById(curAjax.container).innerHTML = curAjax.ajaxReq.responseText;
			} // (otherwise do nothing for null values)
			
......
Как это исправить?

ошибка:
SCRIPT5007: Не удалось получить свойство "documentElement" ссылки, значение которой не определено или является NULL
mchp.js, строка 71 символ 5
Вложения
Тип файла: rar mchp.rar (1.8 Кб, 7 просмотров)
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.

Последний раз редактировалось WorldMaster; 09.11.2014 в 19:39.
WorldMaster вне форума Ответить с цитированием
Старый 09.11.2014, 18:55   #13
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Код функции newAJAXCommand выложите.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 09.11.2014, 19:53   #14
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
Код функции newAJAXCommand выложите.
Выложил. Выше.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 09.11.2014, 20:38   #15
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Если у вас ответ приходит в произвольном формате, то и обрабатывать его надо в текстовом формате. А вы пытаетесь интерпретировать ответ как XML, хотя он таким не является. Отсюда и ошибка скорее всего.
Используйте свойство responseText вместо responseXML.

Либо с microAjax'ом наверное будет так:
Код:
function changeload()
{
    var objElement = document.getElementById("selectBoxId");
    new microAjax('/protect/phsel.cgi?ph='+objElement.selectedIndex, function(response) {
        new microAjax('/protect/phonestat.xml', updateStatus);
    });
}
^-.-^ My GitHub

Последний раз редактировалось Fenex; 09.11.2014 в 20:42.
Fenex вне форума Ответить с цитированием
Старый 09.11.2014, 20:44   #16
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
Если у вас ответ приходит в произвольном формате, то и обрабатывать его надо в текстовом формате. А вы пытаетесь интерпретировать ответ как XML, хотя он таким не является. Отсюда и ошибка скорее всего.
Используйте свойство responseText вместо responseXML.

Либо с microAjax'ом наверное будет так:
Код:
function changeload()
{
    var objElement = document.getElementById("selectBoxId");
    new microAjax('/protect/phsel.cgi?ph='+objElement.selectedIndex, function(response) {
        new microAjax('/protect/phonestat.xml', updateStatus);
    });
}
А на другой странице то срабатывает ... тот же самый код. Только цги и эксемель другой ..
Щас попробую ваш вариант.
Спасибо.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 09.11.2014, 20:49   #17
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Цитата:
Сообщение от Fenex
Если у вас ответ приходит в произвольном формате, то и обрабатывать его надо в текстовом формате. А вы пытаетесь интерпретировать ответ как XML, хотя он таким не является. Отсюда и ошибка скорее всего.
Используйте свойство responseText вместо responseXML.
А, ну тут я не совсем прав, потому что если в функции newAJAXCommand второй аргумент - функция, то ответ будет интерпретироваться как xml. В других случаях берётся строка. В общем, мне непонятно почему так. Видимо, эта штука писалась для очень специфических задач.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 09.11.2014, 21:00   #18
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
А, ну тут я не совсем прав, потому что если в функции newAJAXCommand второй аргумент - функция, то ответ будет интерпретироваться как xml. В других случаях берётся строка. В общем, мне непонятно почему так. Видимо, эта штука писалась для очень специфических задач.
Особенность микроконтроллеров. Памяти очень даже в обрез, видимо писалось чтобы и влезло и работа была более менее похожа на сервер.

Изменил код функции и вставил проверку responseXML на нул. Посмотрим что из этого выйдет. Но в ошибку валится перестало. Тепер ьесли нул то выводит респонстекст.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CGI скрипты Julila HTML и CSS 1 16.03.2013 03:10
задача по CGI Ymerla Общие вопросы Web 12 14.09.2012 16:11
CGI на си Sna1L Помощь студентам 6 06.11.2011 00:39
CGI аким Работа с сетью в Delphi 0 08.10.2008 11:35
CGI Pedro Работа с сетью в Delphi 0 17.11.2007 20:31