Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> AJAX i tablice w formularzu
webdice
post 24.11.2007, 18:50:57
Post #1


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Witam, mam problem z tablicami w formularzach i przesłaniem ich do PHP, mam przykładowo taki kod:

  1. <input type="text" name="test[]" />
  2. <input type="text" name="test[]" />


i teraz pytanie, jak przesłać taką pseudo tablicę do PHP? Oczywiście mówimy tu o wysłaniu przez AJAX.

Pozdrawiam, Piotrek.

Ten post edytował webdicepl 24.11.2007, 18:52:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
devnul
post 24.11.2007, 19:49:35
Post #2





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


tak samo jak i zwykłym rządaniem - ajax to wysyłanie takiego smego rządania jak zwykłe wywołanie strony poprzez podanie adresu - tyle że bez przeładowania - w zależności od tego w jaki spsób korzystasz z dobrodziejstw AJAX'a dane podajesz jako zmienne na odpowiednim indeksie lub jako zserializowany ciąg czyli np
Kod
text[]=cos&tekst[]=cos innego

- tyle


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
webdice
post 24.11.2007, 22:05:43
Post #3


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




źle ująłem problem, wysyłam dane w taki sposób:

  1. parametrs = 'name=' + document.insertProduct.name.value


ale gdy mam tablicę nie odczytać wartości danego pola, np:

  1. params = 'name[]=' + document.insertProduct.name[].value


jeśli pseudo tablica miała by jakiś index nie było by problemu, zatem jak przesłać takową tablicę?

Ten post edytował webdicepl 24.11.2007, 23:46:27
Go to the top of the page
+Quote Post
devnul
post 24.11.2007, 23:33:27
Post #4





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


Kod
for (i=0;i<document.insertProduct.elements.length;i++){
    if (document.insertProduct.elements[i].name='name[]'){
      parametrs += 'name[]=' + document.insertProduct.elements[i].value+'&nbsp;'
   }
}

pisane z palca - ewetualne bledy sam wylapiesz winksmiley.jpg


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
webdice
post 24.11.2007, 23:45:41
Post #5


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Dzięki wielkie, o to chodziło.

Cytat(devnul @ 24.11.2007, 19:49:35 ) *
text[]=cos&tekst[]=cos innego


Nie zauważyłem że powtarzasz tu dwa razy text[] i nie sądziłem że to tak działa, choć z drugiej strony jest to logiczne.
Go to the top of the page
+Quote Post
devnul
post 24.11.2007, 23:52:39
Post #6





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


a prosze ja Ciebie bardzo, dodam jeszcze że różnego rodzaju frameworki javascript mają wbudowane metody serializacji pól formularzy
np. google -> jquery winksmiley.jpg serializacja to tylko pierwiastek jego umiejętnosci - polecam


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
webdice
post 25.11.2007, 00:00:53
Post #7


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Jakoś nie jestem zwolennikiem korzystania z gotowych rozwiązań co zapewne jest marnotrawieniem czasu, choć z drugiej strony przeglądając advAjax i jak wyżej wspomniałeś jQuery stwierdzam że wyglądają dość ciekawie i pewnie przy odrobinie czasy je przetestuje i być może wybiorę którąś z nich.
Go to the top of the page
+Quote Post
devnul
post 25.11.2007, 00:19:41
Post #8





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


którąś, te biblioteki nie są że tak powiem tożsame - advAjax - jak sama nazwa wskazuje to tylko ajax, a jQuery - to także obsługa DOM, efekty i mnustwo innych


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
webdice
post 25.11.2007, 13:24:53
Post #9


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Teraz mam trochę dziwny problem, a mianowicie wysyłając drugi raz żądanie do serwera tablica nie jest zerowana tylko dodawane są nowe elementy. Przykładowo w formularzu mam dwa pola

Kod
parametrs[]


Czyli w pliku PHP powinienem otrzymać

Kod
Array ( [parametrs] => Array ( [0] => parametrs1 [1] => parametrs2 ) )


I jak wyżej wspomniałem po ponownym wysłaniu żądania dodawane są nowe elementy do tablicy, np.

Kod
Array ( [parametrs] => Array ( [0] => parametrs1 [1] => parametrs2 [3] => parametrs1 [4] => parametrs2 ) )


Sprawdzałem w JavaScript i jest wszystko dobrze.
Go to the top of the page
+Quote Post
devnul
post 25.11.2007, 16:04:07
Post #10





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


dobrze - to znaczy jak? show me the code


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
webdice
post 25.11.2007, 19:24:21
Post #11


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Dałbym sobie głowę uciąć że edytowałem posta i napisałem że rozwiązałem problem.

Okazało się jednak że błąd leżał po stronie JavaScript, źle zerowałem zmienna parametrs, a na dodatek źle sprawdzałem smile.gif.
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 - 01:55