Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: radio w formularzu
Forum PHP.pl > Forum > PHP
ralphralph
Witam

Mam pewien problemik. Piszę formularz, w którym znajduje się kilka pól radio, text, itp. Wartości z formularza przekazywane są za pomocą metody POST. Jak dotąd wszystko jest ok. ALE w momencie, gdy ktoś wpisze błędne dane w polu text ma się wyświetlać informacja o błędnym wpisaniu danych i ma się pokazać ten sam formularz z danymi, które zostały wpisane poprzednio. I tu rodzi się pytanie :?:
Czy istnieje jakaś funkcja, która działa w ten sposób, że po odebraniu wartości zmiennej z $_POST["xxx"] od razu umieszcza ją w formularzu w polu o takiej samej nazwie "xxx" :?:
Jak dotąd jedynym pomysłem jaki mi przychodzi do głowy to zapis w postaci
[php:1:57e6c02d27]<input type=text name=napis value="
<?php echo "isset($_POST["name"])? $_POST["name"] : '' "; ?> ">[/php:1:57e6c02d27]

To dotyczy pól tekstowych ale sprawa się skomplikuje jeśli trzeba zająć się typem radio. Jak na razie mam pomysł żeby napisać funkcję porównującą wartość pola radio z tym co znajduje się w zmiennej $_POST. Może wyglądać to tak
[php:1:57e6c02d27]<?php
function sprawdz($nazwa, $wartosc) {
if (!isset($_POST[$nazwa]) {
if ($_POST[$nazwa]==$wartosc) {return "checked";}
else {return "";}
}else {return "";}
} ;
?>[/php:1:57e6c02d27]
Wynik tej funkcji trzebaby później wstawić w ten sposób:
[php:1:57e6c02d27]
<input type=radio name=cos value=wart <?php echo" sprawdz(cos, wart)"; ?> >
[/php:1:57e6c02d27]
Tylko, że takich pól jest duuużooo i trzeba będzie się trochę pobawić smile.gif

Może ktoś miał podobny problem i rozwiązał go w inny sposób?
?>[/php]
menic
Co do zwykłych input, textarea to robię praktycznie to samo. Ale również nie moge znaleźć sposobu jak ładnie zrobic to samo z inymi polami jak select lub radio :?
kurtz
Hej
Cytat
Jak dotąd jedynym pomysłem jaki mi przychodzi do głowy to zapis w postaci
[php:1:edfd049e9a]<input type=text name=napis value="
<?php echo "isset($_POST["name"])? $_POST["name"] : '' "; ?> ">[/php:1:edfd049e9a]
Niestety jesli chcesz pisac poprawnie pod php z E_ALL to niestety nie masz wyboru.
Alternatywa jest podobnie jak nizej stowrzneie funkcji (ktora bedize robila to samo to powyzsza linijka).
Najwygodniej jest wykorzystac jednak szablony ktore czesto wlasnie ultwiaja zadanie - np
Kod
<input type="text" name="imie" value='{$smarty.post.imie|default:"Podaj imie}' />
stworzy pole z domylna wartoscia "Podaj imie". Gdy zostanie przeslana inna wpisze ja w pole formularza. Przyklad podałem dla Smarty.

Cytat
To dotyczy pól tekstowych ale sprawa się skomplikuje jeśli trzeba zająć się typem radio. Jak na razie mam pomysł żeby napisać funkcję porównującą wartość pola radio z tym co znajduje się w zmiennej $_POST. Może wyglądać to tak
[php:1:edfd049e9a]<?php
function sprawdz($nazwa, $wartosc) {
if (!isset($_POST[$nazwa]) {
if ($_POST[$nazwa]==$wartosc) {return "checked";}
else {return "";}
}else {return "";}
} ;
?>[/php:1:edfd049e9a]
Wynik tej funkcji trzebaby później wstawić w ten sposób:
[php:1:edfd049e9a]
<input type=radio name=cos value=wart <?php echo" sprawdz(cos, wart)"; ?> >
[/php:1:edfd049e9a]
Tylko, że takich pól jest duuużooo i trzeba będzie się trochę pobawić :)

Może ktoś miał podobny problem i rozwiązał go w inny sposób?
?>[/php]
Znow niestety tak samo jak w powyzszym - sugeruje szablony. Na ten moment nie przychodzi mi lepszy pomysl odciezenia ciebie od nadmiernego pisania.


Pozdrawiam
ralphralph
Cóż mogę powiedzieć. Z szablonami to dopiero mam zamiar rozpocząć swoją zabawę. tongue.gif
Z tego wynika, że pozostaje mi tylko pisanie, pisanie, pisanie i... pisanie....
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.