Problem może okazać się banalny, ale szukałem już w google 2 dni, i próbowałem różnych spraw a problem ciągle jest. Dlatego postanowiłem zadać w końcu pytanie:
Otóż mam problem z polskimi znakami w wyszukiwarce "pseudoajaxowej". Mam sobie pole input text, w nim wpisuję znaki, a poprzez js i osobny plik php pobieram dane z bazy i wyświetlam w osobnym DIV.
Wszystko by działało, tylko znaczki się gdzieś krzaczą. Zaznaczam, że wszystko mam w UTF-8 (baza, set names w pliku łączącym z bazą, wszystkie pliki kodowane w utf, nawet gdzieś znalazłem żeby w <form> dołożyć accept-charset="utf-8" więc tak zrobiłem, ciągle ten sam problem...)
Kod
Grzeg?�?k? (grzeg?�?k? li??)
coś takiego wyświetla div pod inputem.
Jeśli to coś pomoże, wklejam też poszczególne kody, ogólnie cały skrypt jest znaleziony w necie i tylko troszkę zmieniony:
<input type="text" id="searchinput" name="searchinput" value="" onkeyup="searchSuggest();"/>
Kod
function searchSuggest(){
var str = escape(document.getElementById('searchinput').value);
var myAjax = new Ajax.Request(
'suggest.php',
{
method: 'get',
parameters: "search="+str,
onComplete: showResponse,
onFailure: showAlert
});
}
function showResponse(text){
var search_suggest = document.getElementById("search_suggest");
search_suggest.style.visibility = "visible";
var ss = document.getElementById('search_suggest')
ss.innerHTML = '';
var str = text.responseText.split("\n");
for(i=0; i < str.length - 1; i++)
{ var suggest = '<div onmouseover="java script:suggestOver(this);" ';
suggest += 'onmouseout="java script:suggestOut(this);" ';
suggest += 'onclick="java script:setSearch(this.innerHTML);" ';
suggest += 'class="suggest_link">' + str[i] + '</div>';
ss.innerHTML += suggest;
}
}
function showAlert(MyRequest) {
alert("Operacja nie powiodła się");
}
function suggestOver(div_value) {
div_value.className = 'suggest_link_over';
}
function suggestOut(div_value) {
div_value.className = 'suggest_link';
}
function setSearch(value) {
var search_suggest = document.getElementById("search_suggest");
search_suggest.style.visibility = "hidden";
document.getElementById('searchinput').value = value;
document.getElementById('search_suggest').innerHTML = '';
}
var str = escape(document.getElementById('searchinput').value);
var myAjax = new Ajax.Request(
'suggest.php',
{
method: 'get',
parameters: "search="+str,
onComplete: showResponse,
onFailure: showAlert
});
}
function showResponse(text){
var search_suggest = document.getElementById("search_suggest");
search_suggest.style.visibility = "visible";
var ss = document.getElementById('search_suggest')
ss.innerHTML = '';
var str = text.responseText.split("\n");
for(i=0; i < str.length - 1; i++)
{ var suggest = '<div onmouseover="java script:suggestOver(this);" ';
suggest += 'onmouseout="java script:suggestOut(this);" ';
suggest += 'onclick="java script:setSearch(this.innerHTML);" ';
suggest += 'class="suggest_link">' + str[i] + '</div>';
ss.innerHTML += suggest;
}
}
function showAlert(MyRequest) {
alert("Operacja nie powiodła się");
}
function suggestOver(div_value) {
div_value.className = 'suggest_link_over';
}
function suggestOut(div_value) {
div_value.className = 'suggest_link';
}
function setSearch(value) {
var search_suggest = document.getElementById("search_suggest");
search_suggest.style.visibility = "hidden";
document.getElementById('searchinput').value = value;
document.getElementById('search_suggest').innerHTML = '';
}
<?php include('db_config.php'); $zapytanie = "select identyfikator, nazwa, id_kontrahenta from kontrahenci where identyfikator LIKE '%$search%' LIMIT 10"; for ($i=0; $i <$ile_znalezionych; $i++) { $str .= "[".$wiersz['id_kontrahenta']."]".$wiersz['identyfikator']." (".$wiersz['nazwa'].") \n"; } $str .= "empty \n"; }