Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: POST z AJAXem
Forum PHP.pl > Forum > XML, AJAX > AJAX
Piorunet
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:



Próbowałem z windows-1250 ale efekt jest odwrotny. Div jest dobry, lecz wartości z POST są z japońskimi znaczkami.
warunek
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ć)
#luq
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ć
Piorunet
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ąć.
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.