Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Ajax] Autocomplete i brak reakcji na polskie znaki
john_doe
post
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


Witam,

w grę wchodzą trzy pliki:

1. index.php - tutaj jest pole input text i działa autocomplete

  1. <div>
  2. <b>Wybierz akronim:</b>
  3. <br />
  4. <input class="normal" type="text" size="30" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
  5. </div>
  6.  
  7. <div class="suggestionsBox" id="suggestions" style="display: none;">
  8. <img src="upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
  9. <div class="suggestionList" id="autoSuggestionsList">
  10. &nbsp;
  11. </div>
  12. </div>


2. autocomplete.js

  1. function lookup(inputString) {
  2. if(inputString.length == 0) {
  3. // Hide the suggestion box.
  4. $('#suggestions').hide();
  5. } else {
  6. $.post("autoCompleteSql.php", {queryString: ""+inputString+""}, function(data){
  7. if(data.length >0) {
  8. $('#suggestions').show();
  9. $('#autoSuggestionsList').html(data);
  10. }
  11. });
  12. }
  13. } // lookup
  14.  
  15. function fill(thisValue) {
  16. $('#inputString').val(thisValue);
  17. setTimeout("$('#suggestions').hide();", 200);
  18. }


3. autoCompleteSql.php - do tego pliku odwołuję się poprzez AJAX i wyświetlam w autoComplete

  1. <?php
  2. header("Content-Type: text/html; charset=windows-1250");
  3. include('../../db/connection.php');
  4.  
  5.  
  6. // Is there a posted query string?
  7. if( isSet( $_POST['queryString'] ) )
  8. {
  9. $queryString = $_POST['queryString'];
  10.  
  11. $stmt = $dbh->prepare( "SELECT TOP 20 knt_gidnumer, knt_akronim FROM cdn.kntkarty WHERE knt_archiwalny = 0 and knt_akronim LIKE '$queryString%'" );
  12.  
  13. $stmt->execute();
  14.  
  15. while ( $row = $stmt->fetch(PDO::FETCH_ASSOC) )
  16. {
  17. echo '<li id="liPos" onClick="fill(\''.$row['knt_akronim'].'\');">'.$row['knt_akronim'].'</li>';
  18. }
  19. } else 'No direct access to this script. Go away!';
  20.  
  21.  
  22. ?>


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ęquestionmark.gif?


pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
JoShiMa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


A to czytałeś:

http://blog.bexlab.pl/polskie-znaki-w-php-...rech-aktach/65/


--------------------
Go to the top of the page
+Quote Post
thek
post
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ja to bym ostro kombinował z kodowaniem. Sam się z tym czasem gryzłem. Najgorzej gdy pliki nie tylko mają inne kodowanie strony, ale i wewnętrzne pliku. Nie każdy to zauważa. Kiedyś spędziłem trochę czasu zanim zauważyłem, że plik strony był w innym niż autocomplete i przez to nie tylko był rozjazd na standardowej linii utf-latin-windows (baza swoje także dokładała, lecz "rodzinka set" zrobiła swoje) ale jeszcze na płaszczyźnie ansii-utf. Ogólnie rzecz biorąc jeśli piszesz kod, to pierwsza rzecz o jaką musisz zadbać to jednolite kodowanie wszystkiego lub pisanie tak, by się jednolite wydawało od strony użytkownika.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 00:29