Показать сообщение отдельно
  #19 (permalink)  
Старый 28.02.2012, 20:36
Аватар для allergencore
Интересующийся
Отправить личное сообщение для allergencore Посмотреть профиль Найти все сообщения от allergencore
 
Регистрация: 14.11.2010
Сообщений: 11

я думаю ваша проблема в том, что с сервера возвращается полная страница. есть 2 решения.
1) посылать запрос типа "http://blah-blah/file.php?ajax=1"
file.php:
<?php //line 0
if ($_GET['ajax'] == 1) header("Content-Type: text/xml; charset=ваша_кодировка");
...

еще небольшая кривость в onreadystatechange: на него повешена функция, которая возвращает булеву переменную. так нельзя, вы возвращаете же не значение анонимной функции а самой функции swapPhoto, короче - вот какой должна быть ваша функция для первого варианта:
function swapPhoto(href) {
	var req = new XMLHttpRequest();
	var rtrn = false;
	req.open("GET",
           "http://achacha/chacha/" +
             href.split("/").pop(),
           true);
	req.onreadystatechange = function() {
		if (req.readyState == 4 && req.status == 200) {
			document.getElementById("content").innerHTML = req.responseXML.getElementById("content").innerHTML;
			setupHistoryClicks();
			rtrn = true;
		}
	}
	req.send(null);
	return rtrn;
}

2) просто не париться и через пхп-шник передавать только содержимое дива.
function swapPhoto(href) {
	var req = new XMLHttpRequest();
	var rtrn = false;
	req.open("GET",
           "http://achacha/chacha/" +
             href.split("/").pop(),
           true);
	req.onreadystatechange = function() {
		if (req.readyState == 4 && req.status == 200) {
			document.getElementById("content").innerHTML = req.responseText;
			setupHistoryClicks();
			rtrn = true;
		}
	}
	req.send(null);
	return rtrn;
}
Ответить с цитированием