Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> radio w formularzu
ralphralph
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 11.08.2003
Skąd: Warszawa

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


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ć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Może ktoś miał podobny problem i rozwiązał go w inny sposób?
?>[/php]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kurtz
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 786
Pomógł: 0
Dołączył: 18.03.2002
Skąd: Wroclaw/Warszawa

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


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
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: 12.10.2025 - 20:03