Проблем с аякс и кирилицата на изпратените данни

trevata

Registered
Имам проблем с аякса (отново). Попълвам полетата на обява и натискам бутона преглед, който изпълнява джаваскрипт функция, която праща данни към файла, обаче файла връща тези данни на "развален език"
Имам си
Код:
header("Content-Type: text/html; charset=windows-1251");
Както виждате "Подател", "Порода" и т.н. са си на кирилица... Но от какво може да е това разваляне ? Също така и самото добавяне в базата данни ми е със същия аякс, обаче като добавям в базата данни чат пат го прави на такива символи...

obqva.jpg


Код:
var xmlHttp
var file
function addnotice(file)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  }
var buys = document.getElementById('buysell').value;
var jivotnoa = document.getElementById('jivotno').value;
var oblastota = document.getElementById('oblastot').value;
var oblastzaa = document.getElementById('oblastza').value;
var porodaa = document.getElementById('poroda').value;
var rojdenadataa = document.getElementById('rojdenadata').value;
var pricea = document.getElementById('price').value;
var sroka = document.getElementById('srok').value;
var namea = document.getElementById('name').value;
var phonea = document.getElementById('phone').value;
var maila = document.getElementById('mail').value;
var titlea = document.getElementById('title').value;
var texta = document.getElementById('text').value;
var secua = document.getElementById('secu').value;
var url = file + '.php';
url = url + '?continue=1';
url = url + '&buysell=' + buys;
url = url + '&jivotno=' + jivotnoa; 
url = url + '&oblastot=' + oblastota; 
url = url + '&oblastza=' + oblastzaa; 
url = url + '&poroda=' + porodaa; 
url = url + '&rojdenadata=' + rojdenadataa; 
url = url + '&price=' + pricea; 
url = url + '&srok=' + sroka; 
url = url + '&name=' + namea; 
url = url + '&phone=' + phonea; 
url = url + '&mail=' + maila; 
url = url + '&title=' + titlea; 
url = url + '&text=' + texta; 
url = url + '&secu=' + secua;  
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function stateChanged()
{
	if (xmlHttp.readyState==4)
	{
		document.getElementById("resultNotice").innerHTML=xmlHttp.responseText;
	// document.getElementById("tekstTurg").innerHTML=xmlHttp.responseText;
	}else{
		document.getElementById("resultNotice").innerHTML='Loading...';
	}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}
 
Да... За пореден път пускам тема тука и чак тогава почвам да мисла сериозно :D Просто разкарах .js файла и си сложих кода във .php файла...
Явоно енкодинга на оня файл се е ебавал въпреки че го сменях и на УТФ 8 и нямаше разлика.... Както и да е :)
 
За места където имаш textarea недей да ползваш метод GET, Също така, независимо кой метод ползваш, ще имаш проблем със знака + /плюс/ няма да се вижда.
Защо ползваш толкова много document.get.... Направи си 1 ф-ия кояо обхожда формата и взима стоиностите. http://www.captain.at/howto-ajax-form-post-get.php тук има такава функция, поразгледаи я. За знака + ползваи реплеистване преди пращането с ascii стоиността му. За кирилица ползваи header в сания ajax със зададен енкодинг или направи всичко на utf-8 /което е по-добрия начин/, може и файла който се вика с ajax да ползваш в него iconv('utf-8','windows-1251',$posta)
 
Мерси жорка жив и здрав. Само ако може да ми кажеш как да сложа хидър на самия АЯКС :roll:
 
след
Код:
xmlHttp.open("GET",url,true);

добавяш

Код:
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=windows-1251");
 

Back
Горе