|
|
|
| Я никогда не использовала checkbox в формах.
Если у меня в форме есть вот такой checkbox, то что надо писать в IF ...
Смысл понятен. Не знаю только на что проверять пост.
<input name="f1" type="checkbox" id="f1" value="checkbox"/>
....
$f1 = $_POST["f1"];
...
if $f1 == " что надо писать здесь?" .... | |
|
|
|
|
|
|
|
для: tavila2009
(14.05.2009 в 17:41)
| |
<?
if(isset($_POST["f1"]))
|
| |
|
|
|
|
|
|
|
для: Николай2357
(14.05.2009 в 17:43)
| | но мне надо проверить была ли там поставлена галочка. Это и будет проверкой?
Т.е. проверяется вводилось ли что-то вообще. Так да? | |
|
|
|
|
|
|
|
для: tavila2009
(14.05.2009 в 18:02)
| | так проверяется чекбокс:
<?php
if ($_POST["f1"] == "on")
{
echo "галочка поставлена";
}
|
| |
|
|
|
|
|
|
|
для: psychomc
(14.05.2009 в 18:14)
| | спасибо большое!. Теперь понятно. | |
|
|
|
|
|
|
|
для: tavila2009
(14.05.2009 в 18:20)
| | Неправильно это. Первый вариант надо юзать. | |
|
|
|
|
|
|
|
для: Николай2357
(14.05.2009 в 18:59)
| | Правду говорите - неправильно. Только что убедилась. Спасибо Николай! Вы волшебник - я всегда это говорила - правда Вы всегда меня за это ругали :))) | |
|
|
|
|
|
|
|
для: tavila2009
(14.05.2009 в 19:30)
| | Советую ради интереса попробовать вывести значение $_POST["f1"] - узнаете что в чекбоксах можно передавать не только булевые значения. | |
|
|
|
|
|
|
|
для: Гость
(14.05.2009 в 23:23)
| | спасибо . Попробую. | |
|
|
|
|
|
|
|
для: tavila2009
(14.05.2009 в 23:24)
| | не совсем логично, если использовать первый вариант, то он всегда будет прокатывать. поскольку всегда существует какой-то выбраный вариант по умолчанию..
правельнее было бы проверять на конкретный вариант, который возвращает $_POST['f1'] | |
|
|
|
|
|
|
|
для: *m*
(14.05.2009 в 23:43)
| | >всегда существует какой-то выбраный вариант по умолчанию..
Почему это? Совсем нет. Это же чекбокс а не радиокнопка. Хотя и там совсем не обязательно условие по умолчанию.
>правельнее было бы проверять на конкретный вариант, который возвращает $_POST['f1']
А куда конкретнее? Имя элемента уникально, какой еще вариант? | |
|
|
|
|
|
|
|
для: Николай2357
(15.05.2009 в 00:06)
| | да насчет умолчания не так сказал, да не не про чекбоксы, а про радио кнопки.. опять таки не туда)
писал про чекбоксы а думал про радио кнопки вобщем) | |
|
|
|
|
|
|
|
для: Николай2357
(15.05.2009 в 00:06)
| | Спасибо Николай, у меня всё теперь красиво работает. :))) | |
|
|
|
|
|
|
|
для: tavila2009
(15.05.2009 в 05:49)
| | Правильнее будет (переменные надо определять и проверять....)
<?
$f1 = isset($_POST['f1']) ? (Проверка f1 в зависимости от типа переменной )$_POST['f1'] : NULL ;
|
| |
|
|
|
|
|
|
|
для: serjinio
(15.05.2009 в 10:48)
| | угу, и ещё часто забывают, что в качестве переменной могут передать к примеру массив... | |
|
|
|
|
|
|
|
для: serjinio
(15.05.2009 в 10:48)
| | Тут вообще речь не о переменных... Тут нужно просто проверить - стоит галочка или нет. Зачем такой мудрёж? | |
|
|
|
|
|
|
|
для: Николай2357
(15.05.2009 в 11:40)
| | в чем выражается неправильность проверки "on" ??? | |
|
|
|
|
|
|
|
для: psychomc
(15.05.2009 в 12:03)
| | а там может быть все, что угодно, это вроде от браузера зависит
UPD: а в данном конкретном случае там вообще будет "checkbox" | |
|
|
|
|
 66.7 Кб |
|
|
для: amigo63
(15.05.2009 в 12:12)
| | да....верно.
просто зачем для чекбокса вообще value указывать?
если не указывать, moz, ie, opera возвращают ----------------------------> | |
|
|
|
|
|
|
|
для: psychomc
(15.05.2009 в 12:23)
| | Дело не столько в том, что они возвращают, а в том, что у Вас при отсутствии галочки идет обращение к несуществующему элементу массива, что очень плохо. То есть что бы проверить на содержимое, нужно сначала инициализировать переменную, потом проверять уже её. Ну а зачем столько возни, если можно просто проверить, есть ли такой элемент. При отсутствующей галочке его просто не будет. | |
|
|
|
|
|
|
|
для: Николай2357
(15.05.2009 в 13:11)
| | >идет обращение к несуществующему элементу массива, что очень плохо
php вроде даже notice не возвращает.... | |
|
|
|
|
|
|
|
для: psychomc
(15.05.2009 в 13:16)
| | Такой выставлен уровень ошибок. Но от этого не легче, все равно это тормозит процесс. | |
|
|
|
|
|
|
|
для: Николай2357
(15.05.2009 в 13:38)
| | стоит error_reporting(E_ALL) | |
|
|
|
|
|
|
|
для: Николай2357
(15.05.2009 в 13:11)
| | у Вас при отсутствии галочки идет обращение к несуществующему элементу массива
уверены? | |
|
|
|
|
|
|
|
для: Valick
(15.05.2009 в 13:47)
| | Я никогда ни в чем не уверен. Но:
<pre>
<?PHP
print_r($_POST);
?>
</pre>
<form action="" method="post">
<input name="f1" type="checkbox" />
<input type="submit" />
</form>
| покажите мне, где же он... | |
|
|
|
|
|
|
|
для: Николай2357
(15.05.2009 в 14:04)
| | кто он?
<?php
if (isset($_POST['name'])){
echo "<PRE>";
print_r ($_POST['name']);
echo "</PRE>";
}
if (isset($_POST['name1'])) echo $_POST['name1'];
if (isset($_POST['name2'])) echo $_POST['name2'];
echo "<table border='3' width='50%'>
<form method='post' action='chekx.php'> ";
for($n=0; $n<10; $n++){
echo"
<tr>
<td width='20'>
<input type='checkbox' name='name[]' value='".$n."'>
</td>
<td width='50'>hjgjhg</td>
<td width='150'>uygjhg</td>
<td>jhgjhg</td>
</tr>
";
}
echo"
<tr>
<td width='20'>
<input type='checkbox' name='name1' value='on'>
</td>
<td width='50'>hjgjhg</td>
<td width='150'>uygjhg</td>
<td>jhgjhg</td>
</tr>
<tr>
<td width='20'>
<input type='checkbox' name='name2' value='off'>
</td>
<td width='50'>hjgjhg</td>
<td width='150'>uygjhg</td>
<td>jhgjhg</td>
</tr>
<input type='submit' name='submit' value='Go'>
</form>
";
echo "</table> ";
?>
|
| |
|
|
|
|
|
|
|
для: Valick
(15.05.2009 в 14:11)
| | Valick, не лукавьте ;-) | |
|
|
|
|
|
|
|
для: sim5
(15.05.2009 в 14:24)
| | в смысле? | |
|
|
|
|
|
|
|
для: Valick
(15.05.2009 в 14:27)
| | В том, что вы прикрасно понимаете о чем речь была выше. Вы просто проставили явные значения. | |
|
|
|
|
|
|
|
для: sim5
(15.05.2009 в 14:30)
| | Я прекрасно понимаю о чём речь. Я вот только не знаю как обьяснить Николаю, то что из формы на сервер "полетит" массив только выбранных чекбоксов. | |
|
|
|
|
|
|
|
для: Valick
(15.05.2009 в 14:34)
| | Ну а он о чем? Все верно, не будет выбранных, не будет и в переданном массиве таковых элементов. | |
|
|
|
|
|
|
|
для: sim5
(15.05.2009 в 14:40)
| | Ну а он о чем?
а он о том что
что у Вас при отсутствии галочки идет обращение к несуществующему элементу массива | |
|
|
|
|
|
|
|
для: Valick
(15.05.2009 в 15:00)
| | Вы уверены? | |
|
|
|
|
|
|
|
для: Valick
(15.05.2009 в 15:00)
| | Где? Я написал - несуществующие. Это не пустые совсем. | |
|
|
|
|
|
|
|
для: Николай2357
(15.05.2009 в 15:03)
| | я ошибся, но уже исправил | |
|
|
|
|
|
|
|
для: Valick
(15.05.2009 в 15:04)
| | Существующий, но пустой будет в том случае, если, например:
<input type="checkbox" name="as" value="" checked>
|
| |
|
|
|
|
|
|
|
для: sim5
(15.05.2009 в 15:13)
| | да и только тогда когда вы установите галочку
в противном случае эта переменная не попадёт на сервер | |
|
|
|
|
|
|
|
для: Valick
(15.05.2009 в 15:18)
| | Она уже установлена - checked. | |
|
|
|
|
|
|
|
для: Николай2357
(15.05.2009 в 15:03)
| | по поводу Вашего примера, прежде чем принимать массив на сервере, потрудитесь его хотябы туда отправить ;) | |
|
|
|
|
|
|
|
для: Valick
(15.05.2009 в 15:19)
| | Это как? По почте что ли? ))) Всё там отправлено. И чудесненько кстати работает. | |
|
|
|
|
|
|
|
для: Николай2357
(15.05.2009 в 15:30)
| | Николай, я извиняюсь. Но я просто сразу не понял о каком несуществующем элементе и какого массива идёт речь. Вы имели ввиду суперглобальный масив, а я массив переданный из формы, поэтому у нас возникла такая путанница. | |
|
|
|
|
|
|
|
для: psychomc
(15.05.2009 в 12:03)
| | она просто не сработала. Я сделала сначала как Вы посоветовали. И не работало. Потом сделала как Николай посоветовал и всё прекрасно и понятно заработало. Зачем такой сложный огород городить когда можно сделать просто и понятно как Николай посоветовал. На практике проверила оба способа. Сработал только тот что Николай предложил. | |
|
|
|
|
|
|
|
для: tavila2009
(15.05.2009 в 15:41)
| | всё уже проверено до вас было...
уберите в своей форме с чекбокса value="checkbox"
и проверьте
<?php
if ($_POST["f1"] == "on")
{
echo "галочка поставлена";
}
else
{
echo "галочка не поставлена";
}
|
и так тоже будет работать, никто ничего не городит :)
с Богом :) | |
|
|
|
|
|
|
|
для: psychomc
(15.05.2009 в 16:02)
| | не обижайтесь - я действительно value="checkbox" не убирала. Вы тоже умница! Спасибо Вам. :))) | |
|
|
|
|
|
|
|
для: psychomc
(15.05.2009 в 16:02)
| | работать будет, но проверка == "on" лишняя | |
|
|
|