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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2011, 22:04   #1
coolartemka
Пользователь
 
Регистрация: 19.04.2011
Сообщений: 25
По умолчанию Проблемы с возвратом значения из функции

Код:
<script type = "text/javascript">				
		
		result = NULL;
		
		function getAns(result){
			
			
			
				request.open("GET", "questions.xml", "true");
				request.send(null);
				
				request.onreadystatechange = function(){
				
					if (request.readyState == 4) {
						if (request.status == 200) {
						
							result = request.responseXML;
							
							alert(result);
							
						}
						else {
						
							alert("Error occured!");
							
						}
						
					}
					
				}
					
				return result;	
					
		}
	
	function gogogo() {
		
		alert(getAns());
			
		
	}
		
		
		
	</script>
Проблема с кодом слудующая - внутри функции alert отображает что result - это объект. Но при вызове функции gogogo() функция getAns возвращает объект undefined!!

Помогите разобраться что не так! Хотел бы вынести функцию Ajax в отдельный файл - но из за того что не возвращает объект не могу.
coolartemka вне форума Ответить с цитированием
Старый 01.05.2011, 22:35   #2
Magneto
Форумчанин
 
Аватар для Magneto
 
Регистрация: 10.02.2008
Сообщений: 178
По умолчанию

JavaScript:
Код:
function getAns()
  {
    var result;
    request.open("GET", "questions.xml", "true");
    request.send(null);
    request.onreadystatechange = function()
        {
          if (request.readyState == 4)
            {
              if (request.status == 200)
                {
                  result = request.responseXML;
                }
              else
                {
                  result = "Произошла ошибка!";
                }
            }
        }
    return result;
  }

alert(getAns());
P.S. При условии что в переменной request содержится объект XMLHTTPRequest.

Последний раз редактировалось Magneto; 01.05.2011 в 22:47.
Magneto вне форума Ответить с цитированием
Старый 03.05.2011, 01:21   #3
coolartemka
Пользователь
 
Регистрация: 19.04.2011
Сообщений: 25
По умолчанию

Попробовал - не работает.

request - стандартный объект XMLHttpRequest.

alert выдает всеравно "undefined"! Но если alert запихнуть внутрь скобок где находится строка result = request.responseXML - то тогда метод alert выдает как и положено - [object XMLDocument]!
Использую Mozilla - на компе Win-Apache-My_SQL-PHP...не знаю насколько это относится к теме - но просто на всякий случай добавил.

Есть идеи что это может быть еще? и как с этим бороться. А то я застрял на этом месте и даже не могу прогуглить - нигде не нашел ответа просто.

Последний раз редактировалось coolartemka; 03.05.2011 в 01:24.
coolartemka вне форума Ответить с цитированием
Старый 03.05.2011, 03:36   #4
Magneto
Форумчанин
 
Аватар для Magneto
 
Регистрация: 10.02.2008
Сообщений: 178
По умолчанию

Ай, как я мог пропустить )).
Не:
Код:
request.open("GET", "questions.xml", "true");
а:
Код:
request.open("GET", "questions.xml", true);
И конечно заработало.
Magneto вне форума Ответить с цитированием
Старый 03.05.2011, 23:43   #5
coolartemka
Пользователь
 
Регистрация: 19.04.2011
Сообщений: 25
По умолчанию

Блин(( Не работает всёравно..приведу пожалуй весь код может где еще ошибка...

Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html lang="EN" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content= "text/html; charset=windows-1251" />
        <title>Who is your hero?</title>
    <link rel="stylesheet" type = "text/css" href = "styles.css" />
	<script type = "text/javascript" src="functionality.js"></script>
	<script type = "text/javascript" src = "ajax.js"></script>
	<script type = "text/javascript">				
		
function getAns()
  {
    var result;
    request.open("GET", "questions.xml", true);
    request.send(null);
    request.onreadystatechange = function()
        {
          if (request.readyState == 4)
            {
              if (request.status == 200)
                {
                  result = request.responseXML;
                }
              else
                {
                  result = "Произошла ошибка!";
                }
            }
        }
    return result;
  }

alert(getAns());
		
		
	</script>
	
	</head>
    
    <body>
    <div id = "center">
        <div id="text_start">
            <br />
			Эта программа поможет тебе узнать, какой ты герой доты!
        </div>
        <a onclick="changeColor();"><img src="knopka.png" id = "pic_start" /></a>
    </div>
    </div>
</body>
</html>
Код:
function changeColor(){
		
			document.getElementById('center').style.background = "#E0F4FF";
			
			var node = document.getElementById('center');
			
			while (node.firstChild) {
			
			node.removeChild(node.firstChild);
		
			}
			
			node.appendChild(document.createElement('div'));
			
		}
ajax.js
Код:
var request = null;

if (window.XMLHttpRequest) {
	try {
		request = new XMLHttpRequest();
	} catch(e) {
		
		request = null;
		
	}
	
}
else if (window.ActiveXObject) {
	
	try {
		request = new ActiveXObject("Msxml2.XMLHTTP");
	} 
	catch (e) {
		
		try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
			
		}
		catch (e) {
			request = null;
			
		}
				
	}
		
}
Код:
<?xml version="1.0" encoding = "UTF-8"?>
<entry>
	
	<q1>любой русский текст</q1>
<q2></q2>
	
	
</entry>
В общем вот как все есть...
Скопировал ваш код полностью - выдает undefined всеравно...
Если можете - посмотрите еще пожалуйста, может где еще ошибка...
coolartemka вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить значения функции tapah4ik Помощь студентам 8 29.04.2011 16:38
Вычисление значения функции evklid Помощь студентам 6 10.11.2010 22:30
Max и min значения функции [Garfield] Паскаль, Turbo Pascal, PascalABC.NET 7 01.06.2010 21:11
Вычислите значения функции ффффф Помощь студентам 3 03.05.2010 13:33
передача значения функции proga. Помощь студентам 5 29.10.2009 22:23