index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <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 = ''; 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 function db_connect($server = 'localhost', $username = 'login', $password = 'haslo', $database = 'nazwabazy', $link = 'db_link') { return $$link; } function db_error($query, $errno, $error) { } function db_query($query, $link = 'db_link') { return $result; } function db_fetch_array($db_query) { } $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"; } } ?>
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ę