Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> POST z AJAXem
Piorunet
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 13.09.2010

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


Witam.

Mam taki kod:

  1. function showInfo(str)
  2. {
  3. if (window.XMLHttpRequest)
  4. {// code for IE7+, Firefox, Chrome, Opera, Safari
  5. xmlhttp=new XMLHttpRequest();
  6. }
  7. else
  8. {// code for IE6, IE5
  9. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  10. }
  11. xmlhttp.onreadystatechange=function()
  12. {
  13. if (xmlhttp.readyState==4 && xmlhttp.status==200)
  14. {
  15. document.getElementById("positive").innerHTML=xmlhttp.responseText;
  16. $('.info').fadeIn('slow', function() { });
  17. }
  18. }
  19. var tyt = document.getElementById('tytul').value;
  20. var tr = document.getElementById('tresc').value;
  21. var queryString = "id=" + str + "&tytul=" + tyt + "&tresc=" + tr;
  22.  
  23. xmlhttp.open("POST","positive.php",true);
  24.  
  25. xmlhttp.overrideMimeType('text/html; charset=UTF-8');
  26. xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  27. xmlhttp.setRequestHeader("Content-length", queryString.length);
  28.  
  29. xmlhttp.send(queryString);
  30.  
  31. }


oraz

  1. <?
  2. $id=$_POST['id'];
  3. echo '<div class="info"><img src="tick.png"> News od id '.$id.' został zaktualizowany</div>';
  4. echo $_POST['tytul'];
  5. ?>


Pojawia się div i wartości $_POST['...']. Wszystko działa lecz problem jest następujący - wywala mi jakieś nie polskie znaczki. Oto SS:

(IMG:http://img214.imageshack.us/img214/9880/bladj.jpg)

Próbowałem z windows-1250 ale efekt jest odwrotny. Div jest dobry, lecz wartości z POST są z japońskimi znaczkami.
Go to the top of the page
+Quote Post
warunek
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.07.2010

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


Cytat(Piorunet @ 20.09.2010, 20:11:28 ) *
Próbowałem z windows-1250 ale efekt jest odwrotny. Div jest dobry, lecz wartości z POST są z japońskimi znaczkami.

a o co chodzi z win-1250. JS wysyła w UTF-8, więc zastanów się jakie jest kodowanie strony, jak wysyłasz z serwera (bo nie łaska nawet header'a puścić)
Go to the top of the page
+Quote Post
#luq
post
Post #3





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


1.
Cytat
Kod
$('.info').fadeIn('slow', function() { });


Powiedz, że używasz jQuery i walisz obsługę obiektu XHR ręcznie i korzystasz getElementById O.o

2. Masz to źle zaprojektowane. Absolutnie plik .php nie powinien zwracać html`a. Powinieneś odbierać jakiegoś json`a, np.
Kod
{
  id: 1,
  success: 1,
  title: 'Info dotyczące serwera'
}

a tworzenie diva powinno być po stronie JS`a (gdy readyState == 4)

3. Tak jak poprzednik mówi, we wszystkich plikach jak będziesz miał kodowanie ustawione na utf-8 bez dom, będzie działać
Go to the top of the page
+Quote Post
Piorunet
post
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 13.09.2010

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


Tak mniej więcej z 60% waszych wypowiedzi rozumiem.

Dodałem header'a do pliku php

  1. header("Content-Type: text/html; charset=windows-1250");


Mimo wszystko - dalej źle.

Jakbyście mogli to jakoś ... prościej, ew. na przykładach wytłumaczyć.

Dobra, trudno. Sam jakoś pokombinuję. Temat można zamknąć.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 4.10.2025 - 17:10