Strona 1 z 1
[php] Przesyłanie zmiennych wykorzystując formularze
: pt mar 26, 2004 3:07 pm
autor: cwiru
Mam np. taki kod :
Kod: Zaznacz cały
<html>
<body>
<form method="POST" action="odbierz.php">
<SELECT>
<OPTION name="one"> 1 opcja</OPTION>
<OPTION name="two">2 opcja</OPTION>
</SELECT>
<input type="submit" value="prześlij">
</form>
</body>
</html>
[/color]
Chciałbym aby plik odbierz.php dawał informację typu:
- jeśli wybrano opcję 1 -> komunikat : "Wybrałeś 1 opcję"
- jeśli wybrano opcję 2 -> komunikat : "Wybrałeś 2 opcję"
W jaki sposób sprawdzać zmienne w tablicy $_POST ? Próbowałem wypisywać obie zmienne (
onei
two) ale bez żadnego rezultatu.
Jaką wartość będzie miała zmienna np. two jeśli nie wybiorę jej w formularzu ?
Re: [php] Przesyłanie zmiennych wykorzystując formularze
: pt mar 26, 2004 6:51 pm
autor: iro
Napisałeś, że masz następujący kod:
<html>
<body>
<form method="POST" action="odbierz.php">
<SELECT>
<OPTION name="one"> 1 opcja</OPTION>
<OPTION name="two">2 opcja</OPTION>
</SELECT>
<input type="submit" value="prześlij">
</form>
</body>
</html>
Wydaje mi się, że powinno być:
Kod: Zaznacz cały
<html>
<body>
<form method="POST" action="odbierz.php">
<SELECT>
<OPTION name="one" value="1"> 1 opcja</OPTION>
<OPTION name="one" value="2">2 opcja</OPTION>
</SELECT>
<input type="submit" value="prześlij">
</form>
</body>
</html>
A w pliku odbierz.php na przykład tak:
Kod: Zaznacz cały
<?php
if $_POST["one"]="1"
{
echo "wybrałeś opcję 1"
}
if $_POST["one"]="2"
{
echo "wybrałeś opcję 2"
}
?>
Innymi słowy musisz nadać temu obiektowi jedną zmienną (one) a nie dwie, jak to zrobiłeś w swoim przykładzie. I co najważniejsze przypisać jej jakąś wartość (poprzez atrybut "value").
Powodzenia w dalszej pracy

Re: [php] Przesyłanie zmiennych wykorzystując formularze
: pt mar 26, 2004 9:03 pm
autor: cwiru
Niestety chyba jest coś nie tak. U mnie po wpisaniu powyższego kodu wyświetla komunikat że wybrałem zarówno 1 opcję jak i 2 opcję. Obojętnie którą wybiorę , pierwszą albo drugą rezultat jest taki sam. Czemu to nie działa ?

Re: [php] Przesyłanie zmiennych wykorzystując formularze
: pt mar 26, 2004 10:11 pm
autor: one_eddie
To co ci tu napisali jest do bani, zrob tak:
Kod: Zaznacz cały
<form name="form1" action="jakis_plik.php" method="post">
<select name="nazwa_zmiennej" size="1">
<option value="1">tekst 1</option>
<option value="2">tekst 2</option>
<option value="3">tekst 3</option>
</select>
<input type="submit" name="btn1" value="Costam"></p>
</form>
teraz w jakis_plik.php robisz tak:
Kod: Zaznacz cały
<?php switch (nazwa_zmiennej)
{
case 1: echo "1";
...
}
?>
Ale tak naprawde wystarczylo poszykac jakiejkolwiek informacji na temat znacznika HTML (options, select).
Re: [php] Przesyłanie zmiennych wykorzystując formularze
: pt mar 26, 2004 11:47 pm
autor: cwiru
Coś dziwnie działa u mnie powyższy kod. Jeśli wybrałem opcję 3 to wszystko ok. Jeśli wybrałem opcję nr 2 to komunikat wyświetla odpowiedzi jakbym wybrał opcje 2 i 3. A jeśli wybiorę opcję nr 1 to mam komunikaty dotyczące wszystkich trzech warunków case w instrukcji switch. Sprawdzałem również jaką wartość zmiennej mam w $_POST["nazwa_zmiennej"] i odpowiada ona temu , jaką opcję wybrałem. Więc czemu generują się pozostałe komunikaty ?
Re: [php] Przesyłanie zmiennych wykorzystując formularze
: sob mar 27, 2004 1:32 am
autor: Dreen
sprobuj przepisac tego switcha na konstrukcje if - sa duzo czytelniejsze i jesli zrobiles jakis blad to masz wieksze szanse jego zauwazenia.
mowiac szczerze rzadko uzywam instrukcji switch - nadaje sie chyba po to aby troche namieszac w kodzie, ale nie znam faktow co do jej szybkosci (tzn czy jest szybsza od if) ktos wie?
Re: [php] Przesyłanie zmiennych wykorzystując formularze
: sob mar 27, 2004 11:30 am
autor: cwiru
Zamiana instrukcji switch na if-y nic nie daje. Efekt jest taki sam jak poprzednio. Czy ktoś rozwiąże ten problem ?
Re: [php] Przesyłanie zmiennych wykorzystując formularze
: sob mar 27, 2004 11:33 am
autor: one_eddie
Jeju moj blad. myslalem ze cos kumacie.
powino byc tak:
Kod: Zaznacz cały
<?php switch (nazwa_zmiennej)
{
case 1: echo "1"; break;
...
}
?>
Re: [php] Przesyłanie zmiennych wykorzystując formularze
: sob mar 27, 2004 11:35 am
autor: one_eddie
Dreen pisze:sprobuj przepisac tego switcha na konstrukcje if - sa duzo czytelniejsze i jesli zrobiles jakis blad to masz wieksze szanse jego zauwazenia.
mowiac szczerze rzadko uzywam instrukcji switch - nadaje sie chyba po to aby troche namieszac w kodzie, ale nie znam faktow co do jej szybkosci (tzn czy jest szybsza od if) ktos wie?
Co to tyle bostow masz a takei glupoty piszesz

Re: [php] Przesyłanie zmiennych wykorzystując formularze
: sob mar 27, 2004 5:55 pm
autor: cwiru
Faktycznie, przecież bez instrukcji break wykonują się wszystkie możliwości po kolei. Ale nie ma różnicy (przynajmniej jeśil chodzi o działanie) czy korzysta się z if bądź switch . Problem ostatecznie rozwiązany.
Re: [php] Przesyłanie zmiennych wykorzystując formularze
: sob mar 27, 2004 6:49 pm
autor: one_eddie
Jasne ze nie ma bo przeciez switch i tak zamieniany jest na identyczny kod jak if-y.
Ale takie cos poprawia czytelnosc przy wielu warunkach.
No jesli ktos uzyje jakiegos zamotanego stylu to switche tez moga byc zamotane
