wiem wiem.. bylo już o polskich literach i js, ale za cholere nie działa żadne set UTF-8. Kody wyglądają tak:
index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang
="pl" dir="ltr"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css" media="screen">
body {
font: 11px arial;
}
background-color: #FFFFFF;
padding: 2px 6px 2px 6px;
}
.podsw {
background-color: #3366CC;
padding: 2px 6px 2px 6px;
}
#wypisz {
position: absolute;
background-color: #FFFFFF;
text-align: left;
border: 1px solid #000000;
}
.male{
color: #777777;
}
</style>
<script type="text/javascript" language="JavaScript" charset=utf-8>
function getXmlHttpRequestObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
} else {
alert("zmien przegladarke");
}
}
var obiekt = getXmlHttpRequestObject();
function podpowiedz() {
if (obiekt.readyState == 4 || obiekt.readyState == 0) {
var str = escape(document.getElementById('szukaj').value);
obiekt.open("GET", 'sugest.php?search=' + str, true);
obiekt.onreadystatechange = handleSearchSuggest;
obiekt.send(null);
}
}
function handleSearchSuggest() {
if (obiekt.readyState == 4) {
var ss = document.getElementById('wypisz')
ss.innerHTML = '';
var str
= obiekt
.responseText
.split("\n"); for(i=0; i < str.length - 1; i++) {
var wynik = '<div onmouseover="java script:podswietlony(this);" ';
wynik += 'onmouseout="java script:niepodswietlony(this);" ';
wynik += 'onclick="java script:zapal(this.innerHTML);" ';
wynik += 'class="link">' + str[i] + '</div>';
ss.innerHTML += wynik;
}
}
}
function niepodswietlony(div_value) {
div_value.className = 'link';
}
function podswietlony(div_value) {
div_value.className = 'podsw';
}
function zapal(value) {
document.getElementById('szukaj').value = value;
document.getElementById('wypisz').innerHTML = '';
}
</script>
</head>
<body>
<div style="width: 500px;">
<form>
<input type="text" id="szukaj" name="szukaj" onkeyup="podpowiedz();" autocomplete="off" />
<input type="submit" id="Wybierz" name="Wybierz" value="Wybierz" />
<div id="wypisz"></div><br>
</form>
</div>
</body>
sugest.php:
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" ); header("Cache-Control: no-cache, must-revalidate" ); header("Content-Type: text/html; charset=utf-8");
db_connect
() or
die('blad polaczenia');
function db_connect($server = 'localhost', $username = 'login', $password = 'haslo', $database = 'nazwabazy', $link = 'db_link') {
return $$link;
}
function db_error($query, $errno, $error) {
die('błąd:'.$errno . ' - ' . $query ); }
function db_query($query, $link = 'db_link') {
return $result;
}
function db_fetch_array($db_query) {
}
if (isset($_GET['search']) && $_GET['search'] != '') { $suggest_query = db_query("SELECT * FROM miejscowosci2 WHERE miej like('".$search."%') ORDER BY miej LIMIT 0,15");
while($suggest = db_fetch_array($suggest_query)) {
$woje=$suggest['woj'];
if ($woje=='1') $string="Dolnośląskie";
if ($woje=='2') $string="Kujawsko-Pomorskie";
if ($woje=='3') $string="Lubelskie";
if ($woje=='4') $string="Lubuskie";
if ($woje=='5') $string="Łódzkie";
if ($woje=='6') $string="Małopolskie";
if ($woje=='7') $string="Mazowieckie";
if ($woje=='8') $string="Opolskie";
if ($woje=='9') $string="Podkarpackie";
if ($woje=='10') $string="Podlaskie";
if ($woje=='11') $string="Pomorskie";
if ($woje=='12') $string="Śląskie";
if ($woje=='13') $string="Świętokrzyskie";
if ($woje=='14') $string="Warmińsko-Mazurskie";
if ($woje=='15') $string="Wielkopolskie";
if ($woje=='16') $string="Zachodniopomorskie";
echo $suggest['miej']." <i class=\"male\">(".$string.")</i> \n"; }
}
?>
baza wpisana w UTF-8 i ma system porównania: utf8_general_ci
CREATE TABLE `miejscowosci2` (
`idr` int(11) NOT NULL AUTO_INCREMENT,
`miej` varchar(50) NOT NULL,
`woj` varchar(3) NOT NULL DEFAULT '0',
PRIMARY KEY (`idr`)
);
INSERT INTO `miejscowosci2` VALUES (1, 'Abisynia', '11');
INSERT INTO `miejscowosci2` VALUES (2, 'Abramowice Prywatne', '3');
INSERT INTO `miejscowosci2` VALUES (3, 'Abramów', '3');
INSERT INTO `miejscowosci2` VALUES (4, 'Abramy', '7');
INSERT INTO `miejscowosci2` VALUES (5, 'Achrymowce', '10');
INSERT INTO `miejscowosci2` VALUES (6, 'Adamczowice', '13');
INSERT INTO `miejscowosci2` VALUES (7, 'Adamczowice (Stara Wieś)', '13');
INSERT INTO `miejscowosci2` VALUES (8, 'Adamczycha', '7');
INSERT INTO `miejscowosci2` VALUES (9, 'Adamek', '13');
INSERT INTO `miejscowosci2` VALUES (10, 'Adamierz', '6');
INSERT INTO `miejscowosci2` VALUES (11, 'Adamin', '15');
INSERT INTO `miejscowosci2` VALUES (12, 'Adamin (Nowa Wieś)', '15');
INSERT INTO `miejscowosci2` VALUES (13, 'Adaminowo', '2');
INSERT INTO `miejscowosci2` VALUES (14, 'Adaminowo (Łączki)', '2');
INSERT INTO `miejscowosci2` VALUES (15, 'Adamka', '5');
INSERT INTO `miejscowosci2` VALUES (16, 'Adamki', '3');
INSERT INTO `miejscowosci2` VALUES (17, 'Adamkowo', '2');
INSERT INTO `miejscowosci2` VALUES (18, 'Adamowa Góra', '7');
INSERT INTO `miejscowosci2` VALUES (19, 'Adamowice', '6');
INSERT INTO `miejscowosci2` VALUES (20, 'Adamowice (Dębina)', '5');
INSERT INTO `miejscowosci2` VALUES (21, 'Adamowizna', '7');
INSERT INTO `miejscowosci2` VALUES (22, 'Adamowo', '7');
INSERT INTO `miejscowosci2` VALUES (23, 'Adamowo-Leśnictwo', '2');
INSERT INTO `miejscowosci2` VALUES (24, 'Adamowo-Zastawa', '10');
INSERT INTO `miejscowosci2` VALUES (25, 'Adamów', '7');
INSERT INTO `miejscowosci2` VALUES (26, 'Adamów (Adamów-Kolonia)', '15');
INSERT INTO `miejscowosci2` VALUES (27, 'Adamów Drwalewski', '7');
INSERT INTO `miejscowosci2` VALUES (28, 'Adamów Rososki', '7');
INSERT INTO `miejscowosci2` VALUES (29, 'Adamów-Parcel', '7');
INSERT INTO `miejscowosci2` VALUES (30, 'Adamów-Parcel (Karolinów)', '7');
Skrypt sprawuje się dobrze bez polskich liter, wpisanie %dę% powinno wyświetlić sugestie nr 20, tymczasem nie znajduje żadnego wyniku. Gdzie robię błąd ?
ps. jak ktoś potrzebuje mogę podesłać całą bazę