Od kilku dni bawie sie ajaxem i tez mam z tym problem.. przejrzalem kilknascie stron o tej tematyce ale nic z tego nie rozumiem..
a wiec tak mam trzy stronki pierwsza w php/html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" >
<script type='text/javascript' src='b.js'></script>
<title>Bez tytułu 1</title>
</head>
<body>
<input type="text" id="cos" value="śąźźćżńęół" >
<input type="button" value="ok" onclick="dodaj()" >
</body>
</html>
czyli zwykla stronka z polem tekstowym i przyciskiem, ktory wysyla dane do pliku b.js:
function getXMLHttpRequestObiect()
{
if (window.XMLHttpRequest){
try{
return new XMLHttpRequest();
}
catch(e){
return false;
}
}
else if (window.ActiveXObiect){
var wersjeMSXML= new Array(
"MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP"
);
for (var indeks in wersjeMSXML){
try{
return new ActiveXObject(wersjeMSXML[indeks]);
}
catch(e){
}
}
return false;
}
}
function dodaj(){
if (XMLHttpRequestObiect){
var tekst=document.getElementById("cos").value;
alert(tekst);
var url="c.php?&dodaj=true&nazwa="+tekst;
alert(url);
XMLHttpRequestObiect.open("GET",url);
XMLHttpRequestObiect.onreadystatechange = function()
{
if (XMLHttpRequestObiect.readyState == 4){
if (XMLHttpRequestObiect.status ==200){
var tekst = XMLHttpRequestObiect.responseText;
alert(tekst);
}
}
}
XMLHttpRequestObiect.send(null);
}}
var XMLHttpRequestObiect = getXMLHttpRequestObiect();
tutaj pobieram sobie napis z inputa i wysylam do kolejnego pliku php (to jest tylko przyklad bo normalnie tam mam troche wiecej operacji)
<?php
$polaczenie=mysql_connect('localhost','root','vertrigo');
if (!$polaczenie) echo ('Blad w polaczeniu z aparatem bazy danych!');
$stat=mysql_select_db('aaa',$polaczenie);
if (!$stat) echo ('Nie moge sie polaczyc z wybrana baza danych!');
if(isset($_GET['dodaj']) && isset($_GET['nazwa'])){
$nazwa = $_GET['nazwa'];
$query = "INSERT INTO cos (Id,Nazwa) VALUES (NULL,\'$nazwa\')";
$result = mysql_query ($query);
echo $nazwa;
}
?>
i wszystko pieknie ladnie gdyby nie polskie znaki z 1.php wysyla z polskimi znakami w url w 2.js tez mi przesyla polskie znaki dopiero po wywolaniu XMLHttpRequestObiect.open("GET",url); otrzymuje w 3.php jakies znaczki albo nic... dzialaja mi pl znaczki jesli wpierw przed przeslaniem do 3.php zrobie escape ale pozniej mi w bazie zapisuje zakodowany a musi byc z pl literami..
dodam ze wszystkie 3 pliki sa zapisane w utf-8
a kodowanie bazy i porownywanie znakow tez jest w utf8_unicode_ci
pomocyy.. prosze