![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 18.06.2008 Skąd: Reda Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam w FORMie układ tablicowy: W PHPie wiadomo, odczytam poprzez , lub jakoś podobnie, to nie problem. FORM jest generowany przez PHP, gdzie name jest podawany jako string ("data[15]"); parametr dodatkowy "15" jest zmienny. Potrzebuję jednak w PHP przekazać name ("data[15]") jako string do funkcji PHP i tu rozłożyć to na array, czyli np. $_POST['data'][15]. Wiadomo, gdy zastosuję $_POST[$name], wyjdzie $_POST[data[15]],a potrzeba $_POST['data'][15]. Czy można to rozwiązać jakoś funkcją? Bo nie chcę robić funkcji na analizę znaków w stringu i krok po kroku robić array; chyba że nie da rady inaczej. Ten post edytował bulimaxiu 3.06.2011, 13:38:48 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
W ogóle nie rozumiem pytania, ale chyba i Ty źle coś rozumiesz. Przetestuj poniższy kod:
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 18.06.2008 Skąd: Reda Ostrzeżenie: (0%) ![]() ![]() |
Twój kod niestety nie odwzorowuje problemu. Chodzi o to, że $i jest traktowane jako dana z formularza a jednocześnie i cała nazwa musi być przekazana do funkcji jako string, z której trzeba zrobić array, żeby wydobyć $i.
Poniższa funkcja działa perfect gdy name jest jednowymiarowy, ale gdy name ma wiele wymiarów sypie się. Gdy do Generatora dochodzi nazwa pola name (np. "data[1]"), pole wygeneruje się dobrze (z name="data[1]"), ale gdy przychodzi do sprawdzania tabeli POST to sprawdza $_POST['data[1]'] i tu się zacina. Ideę ewentualnego rozwiązania przedstawiam poniżej, tylko może można to zrobić bardziej profesjonalnie niż takie stringowanie
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 709 Pomógł: 176 Dołączył: 24.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo rozumiem po co ale myślę że możesz użyć czegoś takiego
i na końcu masz tablicę $str w której masz np: "data[1]" , "data[3]" itd. ok prawdopodobnie nie o to chodziło ![]() Ten post edytował d3ut3r 3.06.2011, 19:54:03 -------------------- http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to, że chcesz wyodrębnić z łańcucha data[10] dwa klucze (indeksy) dla tablicy $_POST (pierwszy to data, drugi to 10)? Użyj wyrażeń regularnych:
EDIT Pierwszy człon wyrażenia regularnego trzeba jeszcze rozszerzyć o znaki, jakie mogą znajdować się w atrybucie name elementu HTML, ale nie pamiętam jakie to znaki. Sprawdziłem i już poprawiłem wzorzec. Ten post edytował mortus 3.06.2011, 20:19:03 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 18.06.2008 Skąd: Reda Ostrzeżenie: (0%) ![]() ![]() |
To jest to mortus, dziękuję za pomoc.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 05:04 |