[PHP] przetwarzanie danych w formularzu


(Matyjasz) #1

Witam,

Muszę się poddać i poprosić o pomoc, bo już nie wiem jak sobie poradzić i czy w ogole jest możliwe to co zamierzam.

Otóż sytuacja jest taka:

Jest sobie strona z podglądem zdjęć, gdzie klient może sobie wejść i zamówić odbitki. Obo każdego zdjęcia jest opcja 'wielkość odbitki' - robi to rekurencyjna pętla zależna od ilości zdjęć w katalogu i efekt wygląda mniej więcej tak:

File name : DSC_9312.jpg
Zmienna print_order_of_picture_number dla tego obrazu jest : 4

No PrintSmallMediumLargeExtra Large






[/code]




Wyszczególniłem tu tą kluczową linię, jest to przykład, akurat tutaj zdjecia numer cztery [b][/b], jest to generowane automatycznie, z tym sobie poradzilem. Hidden atrybut jest tylko pomocniczym i jesli osiagne to co chce stanie sie zbednym, takze prosze go pominac. No i teraz zaczyna sie zagwozdka. Powiedzmy ze zdjec jest w katalogu 80, skrypcik robi ladny formularz, na dole wiadomo beda dane uzytkownika itp i teraz po ich przekazaniu do skryptu ktory sprawdza co zamowiono nie wiem jak i czy w ogole sie da odczytac [b]print_size_(numer_obrazka)[/b] w petli przy uzyciu polecenia $jakas_tam_zmienna = $_POST['[b]print_size_(numer_obrazka)[/b]];

Probuje i probuje ale nei wychodzi, prawdopodobnie jesli da sie to zrobic, jest to jakis przedszkolny blad, ja jednak juz nie wiemgdzie szukac. Oto kod, ktory ma zczytywac te dane :

[code] for ($i = 1; $i <= $number_of_pictures; $i++) <- tu odczytuje ile mam obrazkow i ile danych zczytac { $zmienna_do_pobrania_1 = "print_size_$i"; < echo $zmienna_do_pobrania_1." \n"; <- to tylko dla mnie zebym widzial co pobieram i co uzyskuje $zmienna_do_pobrania_2 = $_POST['zmienna_do_pobrania_1']; echo "Zmienna do pobrania 2 tutaj : ".$zmienna_do_pobrania_2." \n"; <- to tylko dla mnie zebym widzial co pobieram i co uzyskuje }
Tak to wyglada, jednak efekt jest taki ze zmienna $zmienna_do_pobrania_2 daje pusty string, no i oczywicie nie wyswietla nic. Zdesperowany wprowadzilem recznie :

$print_size_1_copy = $_POST['print_size_1'];

$print_size_2_copy = $_POST['print_size_2'];

$print_size_3_copy = $_POST['print_size_3'];

$print_size_4_copy = $_POST['print_size_4'];

$print_size_4_copy = $_POST['print_size_5'];

no i efekt jest np:

czyli idea jest sluszna i formularz dane wysyla, jednak ja bym nie chcial dla kazdego klienta i dla nie wiadomo ilu plikow pisac kodu recznie.

Licze na pomoc, bojak mowie nie mam pojecia co robie nie tak. Bede ogromnie wdzieczny.

Jesli to pomoze moge podeslac pelne listingi plikow.

pozdrawiam

mati


(Sitemaster) #2
$zmienna_do_pobrania_2 = $_POST['zmienna_do_pobrania_1'];

->

$zmienna_do_pobrania_2 = $_POST[$zmienna_do_pobrania_1];

(Matyjasz) #3

Dzięki wielkie :smiley:

Udało sie! Co prawda całość wzbogacona o '$' ale głownie w nawiasach leżał problem

teraz wygląda tak :

for ($i = 1; $i <= $number_of_pictures; $i++) {

	$zmienna_do_pobrania_1 = "print_size_$i";

	echo $zmienna_do_pobrania_1."
\n";

	$zmienna_do_pobrania_2 = $_POST[$zmienna_do_pobrania_1];

	echo "Zmienna do pobrania 2 tutaj : ".$zmienna_do_pobrania_2."
\n";

}

Bardzo dziękuje :slight_smile:

pzdr

mati