Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AJAX i tablice w formularzu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
webdice
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.
devnul
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
webdice
ź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ę?
devnul
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
webdice
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.
devnul
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
webdice
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.
devnul
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
webdice
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.
devnul
dobrze - to znaczy jak? show me the code
webdice
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.
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.