Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Грамотно обработать состояние checkbox в куку / 7 сообщений из 7, страница 1 из 1
18.02.2014, 16:42
    #38564836
(PHP) Грамотно обработать состояние checkbox в куку
Код: html
1.
2.
3.
4.
5.
6.
<input type="checkbox" name="category[]" value="1" /> 
<input type="checkbox" name="category[]" value="2" /> 
<input type="checkbox" name="category[]" value="3" /> 
<input type="checkbox" name="category[]" value="4" /> 
<input type="checkbox" name="category[]" value="5" /> 
<input type="checkbox" name="category[]" value="6" /> 


есть 6 чекбоксов, как их запомнить грамотно в куку и потом отметить из куки при cледующей загрузки страницы
как одну отметить я знаю, а как правильно обработать все 6
я знаю только вариант г*кода, но мне нужен хороший вариант:)
...
Рейтинг: 0 / 0
18.02.2014, 17:02
    #38564865
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Грамотно обработать состояние checkbox в куку
Покемончик,

я например не люблю куки юзать. Предлагаю описать причину возникновения такой потребности. Возможно обычные сессии подойдут серверные?

Если всё же без вариантов или хочется именно в куки, то массивы в куках хранить нельзя - только строковые переменные. Потому любым удобным средством сериализируем массив (превращаем в строку... например в json) и записываем. Если значения чекбоксов - числа по порядку, то можно сохранить как набор битов (до 64 значений можно хранить как число).
...
Рейтинг: 0 / 0
18.02.2014, 17:18
    #38564889
(PHP) Грамотно обработать состояние checkbox в куку
Програмёр,
причина следующая, у меня сайт поиска.....
ставим галочку на категорию и ищем по данной категории, при этом шапка с чекбоксами остается неизменна
так, вот..., чтобы постоянно чекбокс не сбивался по дефолту, нужно его оставлять на последнем варианте поиска
куки - потому что они хранятся не на сервере, но можно и сессии (тут не принципиально)
у меня поиск обрабатывается на одной странице с множеством условий и т.д., поэтому сначала мне нужно запомнить через Post, а потом уже считывать из куков/сессий, т.к. куки будут видны при следующем обновление страницы
...
Рейтинг: 0 / 0
18.02.2014, 18:02
    #38564968
(PHP) Грамотно обработать состояние checkbox в куку
вот нашел на просторах....
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
<?php
    
    // Небольшая функция, которая выделит необходимые чекбоксы
    function checked( $value )
    {
        $checkboxes = $_POST['checkboxes']; // Массив выделенных чекбоксов
        
        if( in_array( $value, (array)$checkboxes ) )
        {
            return "checked";
        }
        else
        {
            return false;
        }
    }
?>
<form action="" method="post">
    <label><input type="checkbox" name="checkboxes[]" value="1" <?=checked(1)?> /> Первый чекбокс</label>

    <label><input type="checkbox" name="checkboxes[]" value="2" <?=checked(2)?> /> Второй чекбокс</label>

    <label><input type="checkbox" name="checkboxes[]" value="3" <?=checked(3)?> /> Третий чекбокс</label>

    <label><input type="checkbox" name="checkboxes[]" value="4" <?=checked(4)?> /> Четвёртый чекбокс</label>

    <input type="submit" value="Отправить чекбоксы" />
</form>


by Lyodik
...
Рейтинг: 0 / 0
18.02.2014, 18:20
    #38565000
SmeL_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Грамотно обработать состояние checkbox в куку
Покемончик,
если value чекбоксов = i^2, то можно все их значения описать одним числом (суммой).
...
Рейтинг: 0 / 0
18.02.2014, 18:40
    #38565032
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Грамотно обработать состояние checkbox в куку
SmeL_mdПокемончик,
если value чекбоксов = i^2, то можно все их значения описать одним числом (суммой).

Не опечатались? случаем имели ввиду не 2^i? :) Я уже предлагал... сохранить в двоичном варианте :)
Предполагаю, что именно это Вы и имели ввиду. Иначе, невозможно будет отличить выбор 3 и 4 от выбранного 5-ого чекбокса.

Покемончик, для такого вполне подойдут сессии. Куки - это метод сохранения информации между сессиями... Вам же этого не надо, как я понимаю (то есть зайдя на сайт через месяц, пользователь не должен видеть последние выбранные фильтры месяц назад).
Потому предлагаю всё же смотреть на сессии... Они более оптимальны и работа с ними в разы легче (насколько я помню в сессиях можно хранить не только скалярные значения. но и массивы, и объекты и что угодно ещё).
...
Рейтинг: 0 / 0
18.02.2014, 18:59
    #38565065
SmeL_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Грамотно обработать состояние checkbox в куку
2Програмёр,
опечатался
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Грамотно обработать состояние checkbox в куку / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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