w grę wchodzą trzy pliki:
1. index.php - tutaj jest pole input text i działa autocomplete
<div> <br /> <input class="normal" type="text" size="30" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" /> </div> <div class="suggestionsBox" id="suggestions" style="display: none;"> <img src="upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" /> <div class="suggestionList" id="autoSuggestionsList"> </div> </div>
2. autocomplete.js
function lookup(inputString) { if(inputString.length == 0) { // Hide the suggestion box. $('#suggestions').hide(); } else { $.post("autoCompleteSql.php", {queryString: ""+inputString+""}, function(data){ if(data.length >0) { $('#suggestions').show(); $('#autoSuggestionsList').html(data); } }); } } // lookup function fill(thisValue) { $('#inputString').val(thisValue); setTimeout("$('#suggestions').hide();", 200); }
3. autoCompleteSql.php - do tego pliku odwołuję się poprzez AJAX i wyświetlam w autoComplete
<?php include('../../db/connection.php'); // Is there a posted query string? { $queryString = $_POST['queryString']; $stmt = $dbh->prepare( "SELECT TOP 20 knt_gidnumer, knt_akronim FROM cdn.kntkarty WHERE knt_archiwalny = 0 and knt_akronim LIKE '$queryString%'" ); $stmt->execute(); while ( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) { } } else 'No direct access to this script. Go away!'; ?>
wszystko działa ok, zaczynam wpisywać nazwy kontrahentów, pojawia się okienko z podpowiedziami. Kłopot w tym, że jeśli w nazwie występuję polski znak to skrypt nie działa. Jak widzicie wyżej kombinuję z header ale bez rezultatu. Wszystkie pliki mam zakodowane w windows 1250 a to dlatego, że pracuję na bazie sqlServer2000 i na innym kodowaniu np utf-8 czy iso 8859-2 nie otrzymuję polskich znaków gdy odpytuję bazę i wyświetlam wyniki.
Macie może jakiś pomysł co by tu spróbuwać aby te polskie znaki w autoComplete brało pod uwagę

pozdrawiam