Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odbiór tablicy przez AJAX do JS
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
djlinux
Witam
Chciałbym wykorzystać AJAX'a do odbioru, podmiany zawartości tablicy, która wygenerowana zostanie wcześniej przez PHP.
Jak to ładnie zrobić?
Chodzi mi o samą podmianę elementów tablicy w aplikacji JS, aplikacja w JS zrobi już potem z tym "swoje".

PS: Proszę o przeniesienie do forum "XML, AJAX" albo do forum "JavaScript"
singles
Jeśli Cię dobrze zrozumiałem, to chcesz AJAXem odwołać się np do pobierzDane.php i to ma zwrócić tablicę.

Niech PHP zwraca dane w formacie JSON. Masz do tego gotowe funkcje, poszukaj w manualu. Dostaniesz wtedy po stronie JS ładną tablicę, z którą zrobisz sobie co Ci się podoba.
djlinux
Fajna sprawa to JSON.
Pytanie bardziej chodziło o to, jak AJAXem takie coś odebrać?
Nie mam doświadczenia z Ajaksem, może jakiś przykład, chodzi mi o analogie do czegoś takiego:

  1. xmlhttp.onreadystatechange=function()
  2. {
  3. if(xmlhttp.readyState==4)
  4. {
  5. document.myForm.time.value=xmlhttp.responseText;
  6. }
  7. }


Nie wiem jak to tutaj mam odebrać jako tablicę? Po prostu nie wiem jak to zrobić od strony JavaScript żeby zapisać tą tablicę...
xmarko
Witam,
mam podobny problem, jednak chciałbym uzyskać w wyniku zapytania wynik w zmiennej bez umieszczania jego w kodzie HTML.
Chce te dane dalej przerobić w JS. Wynik będzie przerobiony na tablicą w oparciu o zwróconego stringa.
Zaczynam przygodę z JS i AJAX - proszę o wyrozumiałość.
Wszystko działa do momentu kiedy chce wynik zapytania umieścić w zmienej wynik poprzez funkcję set_wynik
Proszę o pomoc : w jaki sposób przekazać wynik zapytania do funkcji set_wynik ?
Oto kod, który udało mi się stworzyć:
  1. window.onload = function() { // wywołanie tutaj na potrzeby testów
  2. window.Ajax = {};
  3. Ajax.Ajax = function init(url){
  4. this.url = url;
  5. }
  6. Ajax.Ajax.prototype.set_url = function set(url) {
  7. this.url = url;
  8. };
  9. Ajax.Ajax.prototype.get_url = function(){
  10. return this.url;
  11. }
  12. Ajax.Ajax.prototype.set_wynik= function set(wynik){
  13. this.wynik = wynik;
  14. }
  15. Ajax.Ajax.prototype.get_wynik= function (){
  16. return this.wynik ;
  17. }
  18.  
  19. Ajax.Ajax.prototype.wynik = function set(XMLHttpRequestObject){
  20.  
  21.  
  22. if (XMLHttpRequestObject.readyState == 4){
  23.  
  24.  
  25. if(XMLHttpRequestObject.status == 200){
  26.  
  27. var responseXML = XMLHttpRequestObject.responseXML; // tutaj działa
  28. var responseText = XMLHttpRequestObject.responseText; // tutaj działa
  29.  
  30.  
  31. this.set_wynik( responseText );
  32. /* TUTAJ CHCIAŁBYM ABY WYNIK ZAPYTANIA BYŁ
  33.   * PRZESŁANY DO FUNKCJI : set_wynik
  34. * jednak bez efektu nie wiem jak należy to wykonać
  35.   */
  36.  
  37.  
  38.  
  39. }
  40. delete XMLHttpRequestObject;
  41.  
  42. }
  43. }
  44.  
  45. Ajax.Ajax.prototype.getXMLHttpRequestObject = function()
  46. {
  47. try{
  48. // Utworzenie obiektu XMLHttpRequest (silnik Gecko, Webkit, Presco)
  49.  
  50. return new XMLHttpRequest();
  51. }
  52. // Wyłapuje błąd jeśli JavaScript nie posiada obiektu XMLHttpRequest
  53.  
  54. catch(e){
  55. try{
  56. // Utworzenie obiektu ActiveXObject, który jest zawarty w kontrolce ActiveX IE
  57.  
  58. return new ActiveXObject("Msxml2.XMLHTTP");
  59. }
  60. catch(e){
  61. try{ // Utworzenie obiektu ActiveXObject, dla innych wersji IE
  62.  
  63. return new ActiveXObject("Microsoft.XMLHTTP");
  64. }
  65. catch(e){
  66. // Wyświetlenie błędu o braku obsługi obiektu XMLHttpRequest
  67. alert("Twoja przegladarka nie obsługuje technologii AJAX!");
  68.  
  69. return false;
  70. }
  71. }
  72. }
  73. }
  74. Ajax.Ajax.prototype.startGETRequest = function()
  75. {
  76.  
  77. var XMLHttpRequestObject = this.getXMLHttpRequestObject();
  78.  
  79. if(XMLHttpRequestObject){
  80.  
  81. XMLHttpRequestObject.open("GET", this.get_url());
  82.  
  83. XMLHttpRequestObject.onreadystatechange = function() {
  84. Ajax.Ajax.wynik(XMLHttpRequestObject);
  85. };
  86. XMLHttpRequestObject.send(null);
  87. }
  88.  
  89. }
  90.  
  91. // ZASTOSOWANIE :
  92. var Tablica = new Ajax.Ajax("../ajax-php/ChangeType.php?p=5");
  93. Tablica.startGETRequest();
  94. alert(Tablica.get_wynik());
  95. }
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.