Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kilka formularzy generowanych przez pętlę for..
edgar5
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 12.10.2007

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


Mam nastepujacy problem.
Odczytuje danez tablicy wielowymiarowej i:

petla for $i=1 ; $i<=20(przykladowo 20); $i++ .. generuje mi kilka formularzy:

pisze pobieżnie omijajac partie kodu aby przedstawic zarys problemu:

Czesc 1.
for($i=1; $i<=ilosc elementow w tablicy; $i++){
<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">
<input type=hidden name=zmienna value=$i> /ta zmienna przeslana mowi potem ktora tablice ma zmienic skrypt
<input type=text name=zmienna value=zmienna['towar'][$i]['cena']
......
<input type=submit name=zmien value=zmien dane>
<input type=submit name=reset value=usun dane>
</form>
};

zmienne sterujace $i , pozostale zmienne z tablic sa nastepnie przekazaywane do dwoch alternatywnych skryptow:

czesc 2.
skrypt modyfikujacy dane
if(isset($reset)){usuwanie danych z formularza}
if(isset($zmien)){modyfikacja danych wstawionych do powyzszuch pol - po zastapieniu wartosci value}

czesc 2 dziala, walidacja przebiega ok, problem polega w czesci pierwszej.
ciagle przekazywana jest zmiena $i=1....bez wzgledu na to w ktorym formularzu zmodyfikuje zmienne i submit(reset/zmien) ktorego formularza nacisne.
czemu?
czyzby zmienna zmien oraz reset ktora ma ta sama wartosc we wszystkich formularzach uruchmiala domyslnie tylko formularz 1 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

W czym rzecz?

Ten post edytował edgar5 12.10.2007, 19:05:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Prym
post
Post #2





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

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


(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) wiec mnie osobiscie brak cudzyslowów przyprawia o bół głowy i powoduje nieczytelnosc kodu
natomiast co do kodu to zmienna jest dobrze przekazywana do tego momentu:

  1. <?php
  2. if(isset($modyf)) {
  3. if(strlen($zmienna)>0) {
  4. $zmienna=stripslashes($zmienna) && is_numeric($zmienna); 
  5. }
  6. ....
  7. ?>


wywal is numeric - bo akurat zamienia ci id na 1 i kod ci pójdzie poprawnie - osobiście - jeśli oczywiscie moge cos zaproponoac to żebyś zastosował wyrażenie regularne zamiast tego numerica czyli

  1. <?php
  2. $zmienna=preg_replace("/[^0-9]/",'',$zmienna);
  3. ?>


i daj znac czy wywalenie numerica pomoglo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) - ale powinno

u mnie zdaje egzamin i nie przepuszcza niczego oprocz cyfr
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 13.10.2025 - 19:48