Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AdvAjax] Polskie znaki
Forum PHP.pl > Forum > XML, AJAX
pawkow
Sprawa ma się tak:

Mam plik view_movie.php w którym jest opcja dodawani komentarzy.
W view_movie.php includuję showcomments.php który wyświetla komentarze dla konkretnego filmiku
W view_movie.php mam funkcję JS która przesyła dane do skryptu addcomment.php:

  1. <?php
  2. echo '<script type="text/javascript" language="JavaScript">
  3.  
  4. function addComment() {
  5. advAJAX.post({
  6. url: "'.$site_url.'add_comment.php",
  7. parameters : {
  8. "object" : "'.$_GET['id'].'", 
  9. "comment" : document.getElementById("comment").value
  10. },
  11. onSuccess : function(obj) {
  12. document.getElementById("komentarze_i").innerHTML = (obj.responseText);
  13. document.getElementById("comment").value = '';
  14.  
  15. advAJAX.get({
  16. url: "'.$site_url.'showcomm.php?id='.$_GET['id'].'",
  17.  onSuccess : function(obj) { document.getElementById("showcomm").innerHTML = (obj.responseText); }
  18. });
  19.  
  20. },
  21. onError : function(obj) { alert("Error: " + obj.status); }
  22. });
  23.  
  24. }
  25.  
  26. </script>';
  27. ?>


Przy zapisywaniu do bazy nie dostają się do niej PL znaki tylko krzaki.

Kodowanie bazy: latin2-general-ci

Nagłówki w każdym pliku z którego korzystam poprzez AJAX:

  1. <?php
  2. header("Content-Type: text/html; charset=iso-8859-2");
  3. ?>


Jeżeli ktoś na coś wpadnie, byłbym wdzięczny za szybką pomoc... Z góry dzięki
sf
piszesz, że masz kodowanie latin2 bazy, a używasz utf-8 ... zdecyduj się na jedno kodowanie i wszędzie go używaj
pawkow
Sorry, pomyliło mi się, używam naturalnie iso-8859-2

pomoże ktoś questionmark.gif
mdco
Header pomoże tylko gdy wyswietlasz tekst przez Ajaxa przy zapisnie to nie pomoze.
Przed zapisaniem do bazy uzyj iconv" title="Zobacz w manualu PHP" target="_manual
yasiek
Nie jestem do końca pewien, ale z tego co wiem, w AJAXie znaki są przesyłane w utf-8. Dlatego w pliku addcomment.php spróbuj zrobić konwersję znaków z utf-8 na iso (funkcja iconv) - może pomoże smile.gif

EDIT
No i widzę że ktoś mnie lekko uprzedził ;P ale wygląda na to że rozwiązanie dobre - dlatego powodzenia smile.gif
TomASS
Cytat
Przy zapisywaniu do bazy nie dostają się do niej PL znaki tylko krzaki.

To "krzaczki" są tylko w bazie czy także na stronie? Skąd wiesz, że są krzaczki (poprzez phpMyAdmina?), a wyświetl je na stronie z nagłówkiem:
  1. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />


Jeśli to nic nie da, to przeczytaj to. Podstawa to stosowanie wszędzie tego samego kodowania.

Z funkcją iconv czasami jest problem, ponieważ czasami (nie wiem dlaczego) na zewnętrznym hostingu nie ma tego "rozszerzenia" zainstalowanego.

A w AJAXie dane są przesyłane w takim kodowaniu w jakim się chce:
Kod
xmlHttp.overrideMimeType('text/html; charset=ISO-8859-2');
dantekir
Witam,

Korzystam z biblioteki jquery i mam problem ze znalezieniem odpowiedzi na pytanie jak przesyłać dane poprzez GET z polskimi znakami ISO -2

  1. <?php
  2. function ShowConfirm($pytanie,$label_ok,$label_anuluj,$url_ok){
  3. $.ajax({ type: "GET",
  4. url: "confirdiv.php?SID",
  5. data: {pytanie: $pytanie, label_ok: $label_ok, label_anuluj: $label_anuluj, url_ok: $url_ok },
  6. dataType: "html",
  7. success: function(data) {
  8. $("#flMenu").html(data);
  9. $("#flMenu").toggle();
  10. }
  11.  
  12. })}
  13. ?>


$pytanie,$label_ok,$label_anulu - zmienne zawierają polskie znaki
confirdiv.php użyłem header('Content-type: text/html; charset=iso-8859-2');
czego mi brakuje?
Będę wdzięczny za pomoc smile.gif
mjl89
Z polskimi znakami męczyłem się dość długo, oczywiście iconv pomagał, ale nie w zupełności, ponieważ przy znakach specjalnych ucinał dalszą część tekstu. Roziązaniem okazało się kodowanie całej strony w UTF-8.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.