Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odbiór tablicy przez AJAX do JS, Jak to zrobić?
djlinux
post 5.08.2009, 15:27:09
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 2
Dołączył: 4.07.2009
Skąd: Zamość

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


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"

Ten post edytował djlinux 5.08.2009, 16:00:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
singles
post 5.08.2009, 16:53:48
Post #2





Grupa: Zarejestrowani
Postów: 121
Pomógł: 26
Dołączył: 2.07.2007

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


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.


--------------------
Works for me => u mnie działa - blog o (o)programowaniu i nie tylko
meet.php - darmowe meetupy związane z PHP
Go to the top of the page
+Quote Post
djlinux
post 5.08.2009, 21:15:28
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 2
Dołączył: 4.07.2009
Skąd: Zamość

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


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ę...

Ten post edytował djlinux 5.08.2009, 21:18:44
Go to the top of the page
+Quote Post
xmarko
post 18.08.2009, 10:29:53
Post #4





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 26.02.2004

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


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. }


--------------------
marko
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:49