Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.11.2011, 11:04
Аспирант
Отправить личное сообщение для onuvidelsolnce Посмотреть профиль Найти все сообщения от onuvidelsolnce
 
Регистрация: 18.01.2011
Сообщений: 44

Гостевая Ajax + php не обнавляется при добавлении сообщения
В гостевой при добавлении сообщения во всех браузерах показывает загрузку что сообщение отправляется и зависает. Если просто нажать F5/ Видно что сообщение добавлено. проблема в ajax помогите решить проблему.

Вот ссылка на гостевую, можно увидеть загвоздку при добавлении сообщения:

http://onuvidelsolnce.netau.net/gb/index.php

Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 27.11.2011, 11:06
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

в файрфоксе всё нормально...
Ответить с цитированием
  #3 (permalink)  
Старый 27.11.2011, 11:14
Аспирант
Отправить личное сообщение для onuvidelsolnce Посмотреть профиль Найти все сообщения от onuvidelsolnce
 
Регистрация: 18.01.2011
Сообщений: 44

Нет, при отправке должно само переходить в гостевую из формы добавления сообщений. А у меня во всех браузерах нужно самому обновлять страницу.

melky, как я понял ты проверил. Но как получилось что ты два одинаковых сообщений добавил: длджл. наверное потому что два раза нажал отправить а затем нажал сам обновить(F5)
Ответить с цитированием
  #4 (permalink)  
Старый 27.11.2011, 20:23
Аспирант
Отправить личное сообщение для onuvidelsolnce Посмотреть профиль Найти все сообщения от onuvidelsolnce
 
Регистрация: 18.01.2011
Сообщений: 44

В IE если нажать сразу отправить без заполненных полей выдает следующую ошибку:

Строка: 29
Ошибка: Не удалось завершить действие. Ошибка c00ce56e.

function ajax(method,strURL,variable,value,sid) {
    var xmlHttpReq = false;
    var self = this;
	

    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open(method, strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
    self.xmlHttpReq.onreadystatechange = function() {
		
	if(value == 'signgb' ){
	document.signgb.signbutton.disabled = true;
	document.getElementById('signdiv').innerHTML = '<center><img src="images/loading.gif"><br><br><b>'+loadtext+'...</b><br></center>';
			
	}else{
	document.getElementById('entries').innerHTML = '<center><br><br><br><br><img src="images/loading.gif"><br><br><b>'+loadtext+'...</b><br><br><br></center>';
	}
	
       if (self.xmlHttpReq.readyState == 4) {
			if(value == 'signgb' ){
			updatepage(self.xmlHttpReq.responseText,'signgb');
			}else{
            updatepage(self.xmlHttpReq.responseText,'page');
			}
	   }
        
    }
	
	if (value == 'signgb'){
	name=document.signgb.name.value;
	email=document.signgb.email.value;
	homepage=document.signgb.homepage.value;
	message=document.signgb.message.value;
	
	//Fix the "&" bug
	name2 = name.replace(/&/g, "^amp^");
	message2 = message.replace(/&/g, "^amp^");
	
	self.xmlHttpReq.send('dosign=' + pcode.charAt(0) + pcode.charAt(2) + pcode.charAt(4) + pcode.charAt(1) + pcode.charAt(5) + '&name=' + name2 + '&email=' + escape(email) + '&homepage=' + escape(homepage) + '&message=' + message2);
	}else{
    self.xmlHttpReq.send(escape(variable) + '=' + escape(value));
	}
	
}



function updatepage(str, value){
	
	//if (self.xmlHttpReq.readyState == 4) {
	if (value == 'signgb'){
    document.getElementById("signdiv").innerHTML = str;
	showdiv('signdiv');
	document.signgb.signbutton.disabled = false;
	
	//Thanks to Hiric for the fix
	if (str.length <= 2) {  
		//Create cookie
		var date = new Date();
		date.setTime(date.getTime()+(c_minute*60*1000));
		var expires = "; expires="+date.toGMTString();
		document.cookie = "signed=yes"+expires+"; path=/";

		
        hidediv('signform'); 
        ajax('POST','gb_view.php','page','1'); 
      } 

	}else{
	document.getElementById("entries").innerHTML = str;
	showdiv('entries');
	}
	//}
}

function hidediv(id) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'none';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'none';
		}
		else { // IE 4
			document.all.id.style.display = 'none';
		}
	}
	if(id == 'signform'){
	showdiv('entries');
	hidediv('signdiv');
	}
}

function showdiv(id) {
	//safe function to show an element with a specified id
		  
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'block';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'block';
		}
		else { // IE 4
			document.all.id.style.display = 'block';
		}
	}
	if(id == 'signform')
	hidediv('entries');
}
  function smiley(s){
  document.signgb.message.value = document.signgb.message.value + s;
  document.signgb.message.focus();
}

function newwindow(source,name,width,height) 
{ 
window.open(source,name,'width='+width+',height='+height+',resizable=no'); 
}
Ответить с цитированием
  #5 (permalink)  
Старый 27.11.2011, 20:28
Аспирант
Отправить личное сообщение для onuvidelsolnce Посмотреть профиль Найти все сообщения от onuvidelsolnce
 
Регистрация: 18.01.2011
Сообщений: 44

посмотел что за ошибка в интернете вроде что-то с кодировкой. все рекомендации сделал.
Цитата:
1. Передать заголовком в скрипте что генерирует ответ (к примеру PHP) header(‘Content-type: text/html; charset=utf-8′);
2. В файле .htaccess прописать строку AddDefaultCharset UTF-8
все равно не фурычит.

Что ещё можно сделать где поподробнее почитать о проблеме...
Ответить с цитированием
  #6 (permalink)  
Старый 27.11.2011, 20:55
Аспирант
Отправить личное сообщение для onuvidelsolnce Посмотреть профиль Найти все сообщения от onuvidelsolnce
 
Регистрация: 18.01.2011
Сообщений: 44

Самое интересное на локальном сервере денвер все работает.
Ответить с цитированием
  #7 (permalink)  
Старый 27.11.2011, 21:47
Аспирант
Отправить личное сообщение для onuvidelsolnce Посмотреть профиль Найти все сообщения от onuvidelsolnce
 
Регистрация: 18.01.2011
Сообщений: 44

добавил к кнопке отправить
onclick="javascript:window.location.reload(false);
вроде работает. но все же в чем проблема была не понятно.
Тема закрыта
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Видимость php переменных при обращении к файлу через ajax romzes5000 AJAX и COMET 7 04.10.2011 23:10
Как выполнить код javascript при инклюде странички на php wfire jQuery 7 27.05.2011 14:43
Запуск выполнения PHP при нажатие на кнопку??? Abibas220 Общие вопросы Javascript 1 05.01.2011 12:05
Снятие затемнения с экрана при получении ответа от php срипта с помощью setInterval roma86 jQuery 0 16.08.2009 12:39