powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запутался с checkbox-ами
11 сообщений из 11, страница 1 из 1
Запутался с checkbox-ами
    #40128284
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заполняю на странице
Код: html
1.
<input type="checkbox" id="box[]" name="box[]" value="<?=$id?>" style="width: auto;">



Проверяю в скрипте php
Код: php
1.
2.
3.
4.
5.
6.
7.
    if (count($box)>0)
    {
        for($i=0; $i<count($box); $i++)
        {
         $boxtxt =  $boxtxt .'|'.$box[$i];
        }				  
    }



Поискал примеры, где-то пишут, что надо проверять на no/yes, где-то на isEmpty, но у них у всех имеется значение, которое за дано по value
Всегда выводятся все, как можно реально узнать, на каких галки стоят, а на каких нет?
...
Рейтинг: 0 / 0
Запутался с checkbox-ами
    #40128286
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox
Зкак можно реально узнать, на каких галки стоят, а на каких нет?


php выполняется на сервере, создает страницу и не существует далее
checkbox реагирует в браузере
isEmpty это вообще скорее JS оператор

узнать галки можно только оправив форму с чекбоксами в скрипт и обработать
...
Рейтинг: 0 / 0
Запутался с checkbox-ами
    #40128287
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример из сети:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<form action="checkbox-form.php" method="post">

Which buildings do you want access to?

<input type="checkbox" name="formDoor[]" value="A" />Acorn Building

<input type="checkbox" name="formDoor[]" value="B" />Brown Hall

<input type="checkbox" name="formDoor[]" value="C" />Carnegie Complex

<input type="checkbox" name="formDoor[]" value="D" />Drake Commons

<input type="checkbox" name="formDoor[]" value="E" />Elliot House

<input type="submit" name="formSubmit" value="Submit" />

</form>



Обработка строк в РНР
Обратите внимание, что input type checkbox имеют одно и то же имя (formDoor[]). И что каждое имя оканчивается на []. Используя одно имя, мы указываем на то, что чекбоксы связаны. С помощью [] мы указываем, что выбранные значения будут доступны для PHP скрипта в виде массива . То есть, $_POST[‘formDoor’] возвращает не одну строку, как в приведенном выше примере; вместо этого возвращается массив, состоящий из всех значений чекбоксов, которые были выбраны.

Например, если я выбрал все варианты, $_POST[‘formDoor’] будет представлять собой массив, состоящий из: {A, B, C, D, E}. Ниже приводится пример, как вывести значение массива:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?php
  $aDoor = $_POST['formDoor'];
  if(empty($aDoor)) 
  {
    echo("Вы не выбрали ни одного здания.");
  } 
  else
  {
    $N = count($aDoor);

    echo("Вы выбрали $N здание(й): ");
    for($i=0; $i < $N; $i++)
    {
      echo($aDoor[$i] . " ");
    }
  }
?>



т.е. выбранные значения будут доступны для PHP скрипта в виде массива

Не могу понять, почему у меня все доступны, а не только выбранные?!
...
Рейтинг: 0 / 0
Запутался с checkbox-ами
    #40128288
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PizzaPizza
antox
Зкак можно реально узнать, на каких галки стоят, а на каких нет?


php выполняется на сервере, создает страницу и не существует далее
checkbox реагирует в браузере
isEmpty это вообще скорее JS оператор

узнать галки можно только оправив форму с чекбоксами в скрипт и обработать


Так я и отправляю форму в скрипт по POST, но в массиве box все checkbox-ы, а не выбранные
...
Рейтинг: 0 / 0
Запутался с checkbox-ами
    #40128289
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox
PizzaPizza
пропущено...


php выполняется на сервере, создает страницу и не существует далее
checkbox реагирует в браузере
isEmpty это вообще скорее JS оператор

узнать галки можно только оправив форму с чекбоксами в скрипт и обработать


Так я и отправляю форму в скрипт по POST, но в массиве box все checkbox-ы, а не выбранные


Apache 2.2 + PHP 7.1, Chrome 97.0.4692.71
...
Рейтинг: 0 / 0
Запутался с checkbox-ами
    #40128290
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда форма передается ч-з fetch, может в этом дело?
...
Рейтинг: 0 / 0
Запутался с checkbox-ами
    #40128291
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$_POST это массив
выведите свой $_POST и посмотрите что там передается
...
Рейтинг: 0 / 0
Запутался с checkbox-ами
    #40128317
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, fetch загоняет и передает все checkbox в php скрипт. Через jquery работает нормально.
Странно, что у js еще нет встроенного инструмента аля jquery
...
Рейтинг: 0 / 0
Запутался с checkbox-ами
    #40128362
estic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
antox
где-то на isEmpty
Да, чекбоксы принято проверять при помощи empty()/!empty().
...
Рейтинг: 0 / 0
Запутался с checkbox-ами
    #40128371
estic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
antox
но у них у всех имеется значение, которое за дано по value
Обычно нет необходимости получать с клиента "смысловое" значение чекбокса (достаточно имени чекбокса и его состояния), т.к. серверу оно должно быть известно, поэтому в атрибуте value часто указывают любое значение, дающее истину при !empty(), например "1", "ok", "yes" и т.п. При неустановленном чекбоксе соответствующий параметр вообще не передается или передается со значением в виде пустой строки (последнее - редкость).
...
Рейтинг: 0 / 0
Запутался с checkbox-ами
    #40128385
estic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
antox
Заполняю на странице
Код: html
1.
<input type="checkbox" id="box[]" name="box[]" value="<?=$id?>" style="width: auto;">

Вы можете передавать идентификатор в имени, например:
Код: html
1.
2.
<p><input type="checkbox" name="105" value="1"></p>
<p><input type="checkbox" name="106" value="1"></p>

Чтобы отличать чекбоксы от других элементов и для поддержки идентификатора, состоящего из пустой строки, можно использовать префикс имени, т.е. какой-нибудь символ в начале имени, который не допустим в идентификаторах. Также для числовых или символьных непустых идентификаторов можно использовать имена наподобие box[105] или box[one], хотя лично я квадратные скобки в именах не использую.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запутался с checkbox-ами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]