![]() |
![]() ![]() |
![]() |
-Kossak- |
![]()
Post
#1
|
Goście ![]() |
witam , mam maly problemik i nigdzie nie moglem znaleźć rozwiązania....
Generuje formularz w którym ilość elementów jest równa liczbie trafien z bazy mysql. Formularz typu "checkbox" z nazwa która kryje sie pod zmienna $temp1. $name=1; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { foreach ($line as $col_value) { $temp = "'"; $temp1 =$temp.$name.$temp; $_SESSION[$temp1]= $col_value; echo "$col_value<input type='checkbox' name=$temp1>$temp1<br/>"; $name++; } } I tu zaczynaja sie schody. Wysylał metoda POST. jezeli wyświetlam zawartość $temp1 to wyskakuje : '1' (jak wysylam metoda GET to pokazuje ze checkbox ma nazwe 1 czyli wszystko si) Jednak jezeli na nastepnej stronce próbuje wydobyc $_POST[$temp1] to nawet jezeli jest zaznaczone pole to tak jakby go nie było... jezeli natomiast wyświetlam np. $_POST['1'] to juz jest "on" i wszystko działa. Tak samo mam z $_SESSION[$temp1] (tyle ze na odwrot). Jak podam wartośc np. $_SESSION['1'] to sie nic nie wyświetla. A jak $_SESSION[$temp1] to juz prawidlowo.... Czy ktos może mi wyjaśnić czemu tak sie dzieje ? I jak temu zaradzic ? Kazda stronka zaczyna sie sesją i reszta zmiennych dziala normalnie. Z góry dziekuję. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Popelniasz kilka bledow.
1. Zły tytul tematu bowiem nie porusza on problemu nazw zmiennych jako zmienne. Poczytaj sobie w manualu rozdział Zmienne zmienne 2. Jak uczy manual - "Nazw zmiennych dotyczą te same reguły, co innych rodzajów nazw w php. Poprawna nazwa zmiennej zaczyna się od litery lub znaku podkreślenia "_", po których może wystąpić dowolna ilość liter, cyfr lub znaków podkreślenia." Ty w przypadku sesji uzywasz $temp jako indeksu tabliicy superglobalnej $_SESSION, a w przypadku pola input przypisujesz mu zmienna $temp nazwe. I tak w przypadku sesji twoja zmienna ma nazwe $_SESSION['1'] - co jest dozwolone a w przypadku pola input Twoja zmienna ma nazwe "1" co jest juz niedopuszczalne. (To ze odczytujesz ja z tablicy superglobalnej $_POST lub $_GET - to juz rzecz wtórna.)
Po wykonaniu formularza mozesz odczytac zmienne $_SESSION[$index] lub w zaleznosci jaka metoda przesylales zmienne $_POST['nazwa'][$index] lub $_GET['nazwa'][$index] 3. Specyfikacja xhtml mowi miedzy innymi ze wszystkie tagi musza byc zamkniete a wiec nie tylko <br /> (zwroc uwage na spacje przed ukosnikiem), ale takze <input />. Ponadto wartosci wszystkich atrybutow powinny byc otoczone cudzyslowami. Ten post edytował bigZbig 11.04.2005, 10:36:38 -------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:12 |