Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> tablice asocjacyjne i nazwy pól
sintom
post 24.09.2002, 11:10:36
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 5.04.2002
Skąd: opole

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


Czy ktos wie jak sie dobrać do nazw pól tablicy asocjacyjnej?

Otóz, chciałbym napisac skrypt, który zapisuje wszystkie informacje otrzymane z formulara do np. pliku textowego (oczywiście nie znając nazw pól tego formularza).

Z tego co wiem tablica HTTP_POST_VARS jest tablicą asocjacyjną zawierającą dane formularza (dla metody post oczywiście)
Wiem, że mogę użyć funkcji FOREACH ale okazało się, że nawet zawartść
przycisków pojawiła się w pliku tekstowym (co w ogóle mi nie potrzebne)

Po prostu chaciałbym zrobić ten skrypt jak najbardziej uniwersalnym.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
dragossani
post 24.09.2002, 12:30:27
Post #2





Grupa: Przyjaciele php.pl
Postów: 398
Pomógł: 0
Dołączył: --
Skąd: Poznań

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


Cytat
Czy ktos wie jak sie doprac do nazw pól tablicy asocjacyjnej?

To chyba nie problem. Manual stwierdza jasno:
Kod
foreach($_POST $key => $value) print("<BR>klucz: $key, wartość: $value");

Cytat
Wiem, że mogę użyć funkcji FOREACH ale okazało się, że nawet zawartść przycisków pojawiła się w pliku tekstowym (co w ogóle mi nie potrzebne)

No tak akurat się składa, że formularz wysyła komplet danych, łącznie z wartościami przycisków np. submit-a. Zawsze można jednak przyciąć tablice o niepotrzebne wartości:
Kod
unset($_POST['nazwa_niepotrzebnego_pola']);

Nic nie wiem o tym, żeby przyciski w formularzu były jakoś szczególnie oznaczone. Nie da się ich chyba odróżnić od innych pól. Jeśli masz wpływ na sam formularz to można po prostu ponazywać wszystkie przyciski tak, by stworzyły tablicę i wyciąć ją całą. Czyli:
Kod
W formularzu:

<INPUT TYPE="BUTTON" NAME="button[btn1]" VALUE="Cośtam">

<INPUT TYPE="SUBMIT" NAME="button[submit]" VALUE="Wyślij">

<INPUT TYPE="RESET" NAME="button[reset]" VALUE="Wyczyść">



A w skrypcie:

unset($_POST['button']);

Nie testowałem ale powinno zadziałać.
Przyciski możnaby też ponazywać wszystkie po prostu: "button[]", czyli poindeksować automatycznie, ale sądzę, że ewentualny javascript miałby wtedy z nimi problem (tablica elements[] formularza byłaby zdegenerowana).


--------------------
cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
Go to the top of the page
+Quote Post
sintom
post 26.09.2002, 16:42:36
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 5.04.2002
Skąd: opole

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


czyli widze, ze nie ma jakiegos prostego sposobu na dobranie do sie
nazw pol....
Chyba czas na nowa wersje php
Go to the top of the page
+Quote Post
dragossani
post 26.09.2002, 17:08:45
Post #4





Grupa: Przyjaciele php.pl
Postów: 398
Pomógł: 0
Dołączył: --
Skąd: Poznań

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


Cytat
czyli widze, ze nie ma jakiegos prostego sposobu na dobranie do sie nazw pol...

Myślę, że aktualny sposób nie należy do szczególnie trudnych. smile.gif

Cytat
Chyba czas na nowa wersje php

Nie jestem przekonany, że fakt iż przychodzące POST-em zmienne mają przemieszane pola i przyciski jest zasługą php. Sądzę, że to przeglądarka bądź apache podają takie zmienne.


--------------------
cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
Go to the top of the page
+Quote Post
FiDO
post 26.09.2002, 21:15:02
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Cytat
Nie jestem przekonany, że fakt iż przychodzące POST-em zmienne mają przemieszane pola i przyciski jest zasługą php. Sądzę, że to przeglądarka bądź apache podają takie zmienne.
Tez nie sadze aby to php bylo tu winowajca, pozatym wysylane sa tylko te elementy formularza, ktore maja ustawiony atrybut "name" w przyciskach tego nie uzywam (choc przydaje sie czasem do JS), wiec i nie mam ich w _POST
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 07:57