nowAnd22
20.05.2011, 22:12:33
Witam,
wyskakuje mi poniższy błąd
Notice: Undefined index: same in C:\wamp\www\sklep_internetowy\checkout2.php on line 8
odnosi się do fragmentu kodu checkout2.php
7 mysql_select_db("ecommerce");
8 if ($_POST['same'] == 'on') {
9 $_POST['shipfirst'] = $_POST['firstname'];
10 $_POST['shiplast'] = $_POST['lastname'];
11 $_POST['shipadd1'] = $_POST['add1'];
12 $_POST['shipadd2'] = $_POST['add2'];
13 $_POST['shipcity'] = $_POST['city'];
14 $_POST['shipstate'] = $_POST['state'];
15 $_POST['shipzip'] = $_POST['zip'];
16 $_POST['shipphone'] = $_POST['phone'];
17 $_POST['shipemail'] = $_POST['email'];
18 }
w podrzedzającym skrypcie zdefiniowałem 'same' checkout.php
<form method="post" action="checkout2.php">
...
<tr>
<td width="50%">
<div align="right">Dane jak dla kupującego</div>
</td>
<td width="50%">
<input type="checkbox" name="same">
</td>
</tr>
nie mogę odnaleść błędu, proszę o pomoc
WebCM
20.05.2011, 22:17:16
Jeżeli 'same' jest polem typu "checkbox", sprawdzasz go instrukcją
isset(). Jeżeli go nie zaznaczysz w formularzu, nie zostanie wysłany do serwera, zatem PHP go nie zobaczy.
Niech Pan zajrzy do strony ,gdzie zassał Pan kod,może znajdzie Pan odpowiedź.
nowAnd22
21.05.2011, 17:41:00
dokładnie przeglądałem książkę ale nic nie znalazłem.
czy można przekazać checkbox jak jest niezaznaczony (value=on) do serwera by następny skrypt go widział?
phpion
21.05.2011, 17:43:51
Tak. Wystarczy, że przed polem checkbox umieścisz ukryte pole (input type=hidden) o takiej samej nazwie jak nazwa pola checkbox. Temu polu możesz przypisać wartość, która będzie wartością domyślną w przypadku braku zaznaczenia pola checkbox.
WebCM
21.05.2011, 19:45:02
Pole typu
checkbox jest zaznaczone (1) albo nie jest (0). Innej możliwości nie ma. Sprawdzasz to tak:
if(isset($_POST['nazwa_pola'])) {
echo 'Pole jest zaznaczone'; }
else
{
echo 'Pole nie jest zaznaczone'; }
//Czyli w twoim przypadku
if (isset($_POST['same'])) {
/* dalszy kod */
}
PS. Podręcznik PHP nie wspomina o polach typu checkbox. W ogóle mało o obsłudze formularzy. To powinno być podstawowe źródło wiedzy, dlatego takie luki są niedopuszczalne. Ktoś im przypomni?
nowAnd22
21.05.2011, 20:20:26
wielkie dzięki, teraz śmiga
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.