Προς το περιεχόμενο

AJAX, IE, και ελληνικα γραμματα


nik1992

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω βάλει σε μια σελίδα την ελληνική και την αγγλική αλφάβητο, και από κάτω εμφανίζεται μία λίστα με κάποιες εγγραφές που τις διαβάζω από μία βάση δεδομένων.

 

Όταν κάνω κλικ σε κάποιο γράμμα στέλνεται με AJAX μέσω POST σε ένα αρχείο και γίνεται ένα SQL Query για να επιστρέψει τις ανάλογες εγγραφές. Σε firefox safari chrome opera λειτουργει σωστά. Στον IE όμως, λειτουργεί μόνο η αγγλική αλφάβητος...

 

Τι μπορεί να φταίει?

 

>
function showSellers(str)
{
if (window.XMLHttpRequest)
 {// code for IE7+, Firefox, Chrome, Opera, Safari
 xmlhttp=new XMLHttpRequest();
 }
else
 {// code for IE6, IE5
 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
xmlhttp.onreadystatechange=function()
 {
 if (xmlhttp.readyState==4 && xmlhttp.status==200)
   {
   document.getElementById("sellers").innerHTML=xmlhttp.responseText;
   }
 }
xmlhttp.open("POST","sellers.php?l="+str,true);
xmlhttp.send();
}

Έτσι είναι ο κώδικας για την αλφάβητο:

<a href="#" onclick="showSellers('Α');">Α</a> ...

 

Δοκίμασα αντί για Α, Β, Γ κτλ να βάζω Α ..

Δημοσ.

Δοκίμασε να μετατρέψεις τον ελληνικό χαρακτήρα σε html special character

>xmlhttp.open("POST","sellers.php?l="+escape(str),true);

Βέβαια, θα πρέπει να κάνεις την αντίστροφη διαδικασία στην php.

 

Για την escape (js) δες εδώ: http://www.javascripter.net/faq/escape.htm

Για την php δες εδώ: http://www.php.net/manual/en/function.htmlspecialchars-decode.php

Δημοσ.

Ευχαριστώ για τις απαντήσεις! Το αρχείο είναι UTF-8, δοκίμασα και με τα escape - decode αλλα παλι δεν λειτουργει στον IE..

Δημοσ.

isay ευχαριστω! με την κωδικοποιηση σε Windows-1253 παιζει σωστα!

 

Ευχαριστω ολους που βοηθησαν!

Δημοσ.
... με την κωδικοποιηση σε Windows-1253 παιζει σωστα!

...

Μια χαρά. Κάνε δοκιμές και με άλλους browser αλλά και με άλλο λειτουργικό (π.χ. linux live cd)

Δημοσ.

Είναι καλύτερο να χρησιμοποιήσεις UTF-8 encoding.

 

Το πρόβλημά σου μπορείς να το λύσεις με το να δηλώσεις στο ajax request την κωδικοποίηση που θέλεις. Δες τον παρακάτω κώδικα...

 

xmlHttp.open ("POST", url, true);

xmlHttp.setRequestHeader ("Accept-encoding", "UTF-8");

xmlHttp.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");

xmlHttp.setRequestHeader ("Content-length", parameters.length);

xmlHttp.setRequestHeader ("Connection", "close");

xmlHttp.send (parameters);

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...