Непонятка с чекбоксом.

Benderlio

Новичок
если чек бокс пришел значит он чекед, если не пришел значит не чекед,
а если он был чекед, а я снял чекед , то он не прийдет в массиве пост данных.
а мне его надо снять.
или я что то не понимаю?
 

Фанат

oncle terrible
Команда форума
Вообще, для этих целей лучше подходит радио, а не чекбокс.
В радио подразумевается выборка одного из состояний - что тебе и надо.
А чекбокс - это только чекед.

но еслитак уж хочется именно чекбоксом, то хидденами передаешь , как показано выше
 

FB3

Новичок
Автор оригинала: MiRacLe
Задачка для второклассника. Из A вычесть B...
Сервер не знает, какие id шники он отдал в прошлый раз браузеру, поэтому нужно все id шники передать и к каждому значение true или false. Я так понял поставленную задачу.
 

Benderlio

Новичок
FB3
да именно так и обстоит, пользуюсь вариантом который предложил AmdY.
всем спасибо!
 

fixxxer

К.О.
Партнер клуба
ой
а не проще в value идшники проставить?
список применимых id все равно надо при обработке post-а получать, иначе я тебе там такого напередаю из формы.
получил, прошелся по нему сравнивая с тем что в _POST и все прекрасно.
 

Фанат

oncle terrible
Команда форума
fixxxer
так в том жеж вся и проблема. чекбоксы ж. не уходят
 

Фанат

oncle terrible
Команда форума
у него выводится список с флажками. Это - по сути - радио.
Смена состояния. то есть,важен не только нажатый, но и отжатый.
 

MiRacLe

просто Чудо
Не нужен "отжатый".
Отжатые = Показанные - Отмеченные.
 

Фанат

oncle terrible
Команда форума
речь не обо мне.
если у тебя еть претензии к моим репликам - можешь их высказать.
если нету - лучше промолчать
 

FB3

Новичок
Автор оригинала: MiRacLe
Не нужен "отжатый".
Отжатые = Показанные - Отмеченные.
Показанные не известны серверу, соответственно не от чего Отмеченные вычитать. Я же написал выше. Зачем писать одно и то же...
 

fixxxer

К.О.
Партнер клуба
Автор оригинала: *****
у него выводится список с флажками. Это - по сути - радио.
Смена состояния. то есть,важен не только нажатый, но и отжатый.
ну и что :)
если есть реакция на отжатие значит изначально он показывается нажатый
значит для вывода списка чекбоксов есть функция, которая достает список флажков вместе с их состоянием.
вот еще раз ее дернуть, и пройтись по этому же списку, проверяя наличие в _POST.
 

Фанат

oncle terrible
Команда форума
Эта функция - постраничный вывод.
То есть, заведомо не может быть гарантирована идентичность. при повторном прогоне.
 

fixxxer

К.О.
Партнер клуба
почему? передавать номер страницы в хиддене.
или, если есть вероятность, что уже что-то за время просмотра было добавлено на предыдущих страницах, то ид первого выводимого чекбокса.
мы же когда на страницу переходим знаем что выводить.
 

fixxxer

К.О.
Партнер клуба
PHP:
function update_items($items_list) {
    $items_update = array();
    $post_items = array_flip($_POST['items']);
    foreach ($items_list as $id => $status) {
       if ($status === true && !isset($post_items[$id])) {
          $items_update[$id] = false;
       } else if ($status === false && isset($post_items[$id])) {
          $items_update[$id] = true;
       }
    }
    if (count($items_update])) update_items($items_update);
}

$items_list = get_items_for_page((int)$_REQUEST['page']);
if ('POST' == $_SERVER['REQUEST_METHOD']) {
    update_items($items_list);
    redirect_to_self();
}
show_checkboxes();
как то так =)
 

Фанат

oncle terrible
Команда форума
Кость, ну это ж все детский сад.
Ну коль уж передаем в хиддене что-то, то пустьэто будет хидден со всеми отмеченными чекбоксами =)
надежнее же
 
Сверху