3 / 3 / 1
Регистрация: 22.04.2010
Сообщений: 29
1

Некорректная работа checkbox и mySQL

19.11.2012, 05:02. Показов 1198. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброе время суток!
Есть такая проблема, на форме есть некоторое количество checkbox, выводятся они из базы вот этим циклом
PHP
1
2
3
do{
echo '<input type="checkbox" input name=cb value="', $a8['id_answ'],'">', $a8['name_answ'], '</input><br>';}
    while ($a8 = mysql_fetch_array ($z8_8));
Обработка формы происходит в другом файле, в нем должно выполнятся вот это

PHP
1
       $zapis8 = mysql_query ("UPDATE answer SET vote=vote+1 WHERE id_answ='$cb'");
Но почему то, в базу заносится только одно значение checkbox, а выбрано их от 1 до 3х
переменная $cb определяется вот этим
PHP
1
if (isset($_POST['cb'])) {$cb = $_POST['cb'];}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2012, 05:02
Ответы с готовыми решениями:

Денвер: некорректная кодировка на MySQL сервере
Здравствуйте . У меня проблема в следующем есть база данных в ней таблица кодировка указана базы...

checkbox+php+mysql
Доброе время суток) Я новичок в php. Подскажите пожалуйста как передать, записать значения...

Checkbox+php+MySQL
Подскажите, как заставить работать checkbox в этой конструкции, т.е. при нажатии submit, с учетом,...

MySql + Php + Checkbox
Доброго времени суток. У меня возник вопрос. как хранить выборочные данные Checkbox? Существует...

6
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
19.11.2012, 05:16 2
ну так вы давайте разные аттрибуты name чекбоксам , а так у вас только последний записывается
1
3 / 3 / 1
Регистрация: 22.04.2010
Сообщений: 29
19.11.2012, 05:28  [ТС] 3
Если делать это путем добавления к
PHP
1
name=cb', $a8['id_answ'],'
то как его объявить вот здесь
PHP
1
if (isset($_POST['cb'])) {$cb = $_POST['cb'];}
, или же есть какой то другой способ это сделать?
0
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
19.11.2012, 05:32 4
ну это зависит от того что вы хотите получить

Добавлено через 3 минуты
я вот делал так когда то
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<table>
                    <tr>
                        <td><label><input type="checkbox" name="typ[1]" id="typ1" onclick="changeCheck(0)"/> <?=l('engine'); ?> </label></td>
                        <td><label><input type="checkbox" name="typ[4]" id="typ4" onclick="changeCheck(0)"/> <?=l('brake'); ?> </label></td>
                        <td><label><input type="checkbox" name="typ[7]" id="typ7" onclick="changeCheck(0)"/> <?=l('nitro'); ?> </label></td>
                        <td><label>min: <input id="lvlmin" name="lvlmin" class="minmax" type="text" placeholder="1" title="min lvl" maxlength="2" size="5"/></label>
                            <label>max: <input id="lvlmax" name="lvlmax" class="minmax" type="text" placeholder="74" title="max lvl" maxlength="2" size="5"/></label></td>
                        <td><input type="submit" id="filter" name="bigfilter" title="<?=l('filter'); ?>" value=" <?=l('filter'); ?>"/></td>
                    </tr>
                    <tr>
                        <td><label><input type="checkbox" name="typ[2]" id="typ2" onclick="changeCheck(0)"/> <?=l('ammo'); ?> </label></td>
                        <td><label><input type="checkbox" name="typ[5]" id="typ5" onclick="changeCheck(0)"/> <?=l('spoler'); ?> </label></td>
                        <td><label><input type="checkbox" name="typ[8]" id="typ8" onclick="changeCheck(0)"/> <?=l('auto'); ?> </label></td>
                        <td><label><input type="radio" name="check" id="check1" onchange="changeCheck(1)"/> <?=l('check all'); ?> </label></td>
                        <td><label><input type="checkbox" name="sort" id="typ9" /> <?=l('sorting'); ?> </label></td>
                    </tr>
                    <tr>
                        <td><label><input type="checkbox" name="typ[3]" id="typ3" onclick="changeCheck(0)"/> <?=l('wheel'); ?> </label></td>
                        <td><label><input type="checkbox" name="typ[6]" id="typ6" onclick="changeCheck(0)"/> <?=l('turbo'); ?> </label></td>
                        <td><label><input type="checkbox" name="unik" id="typ0" onclick="changeCheck(0)"/> <?=l('unik'); ?> </label></td>
                        <td><label><input type="radio" name="check" id="check2" onclick="changeCheck(2)"/> <?=l('nocheck'); ?> </label></td>
                        <td><a onclick="filterr(2)"><?=l('minifilter'); ?></a></td>
                    </tr>
                </table>

Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for($i = 1; $i <= 8; $i++)
                if(isset($_POST['typ'][$i]) && $_POST['typ'][$i] == 'on')
                    $array['typ'][$i] = $i;
if (!empty($array['typ'])){    
            $this->load->model('filter', '', true);
            $data['parts'] = $this->filter->get_parts($array);
        }
 
function get_parts($array){
    
        $param = array();
        $typ = implode(", ", $array['typ']); 
        if ($array['doptyp']['sort'] === true){
            $sql = "SELECT * FROM `main` 
                    WHERE `level` >= '{$array['doptyp']['lvlmin']}' AND `level` <= '{$array['doptyp']['lvlmax']}' 
                    AND `type` IN ($typ) AND `uniqum` IN ('{$array['doptyp']['unik']}', 0) ORDER BY `level`, `type`";
1
3 / 3 / 1
Регистрация: 22.04.2010
Сообщений: 29
19.11.2012, 05:36  [ТС] 5
Вообще это должен быть опрос, в checkbox выводит ответы, из которых можно выбрать от одного до 3х штук, по нажатию на кнопку, в базу в поле vote, прибавляется один голос для тех значений которые были выбраны.

Добавлено через 2 минуты
Я думал уже над этим вариантом, что бы прописать все варианты вручную, а не выводить их циклом, просто думал что есть какой нибудь способ, это все дело автоматизировать.

Добавлено через 1 минуту
Ладно, спасибо и на этом)
0
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
19.11.2012, 05:46 6
ну так выводите циклом в чем проблема, просто у меня там циклом не получалось потому что по дизайну нужно было подбирать расположение
делайте name у них массивом и принимайте этот массив через POST и смотрите что там, опять через цикл проганяете фильтруете, и потом в зависимости от количества елементов формируете запрос к бд

Добавлено через 6 минут
как то так называете
PHP
1
name=cb[', $a8['id_answ'], ']
а потом принимаете
PHP
1
2
3
4
5
if (isset($_POST['cb'])){
$array = array();
foreach ($_POST['cb'] as $key => $value)
$array[] = (int)$key;
}
а получите массив $array со всеми выбранными id
0
3 / 3 / 1
Регистрация: 22.04.2010
Сообщений: 29
19.11.2012, 05:47  [ТС] 7
Большое спасибо, сейчас попробую помудрю.
0
19.11.2012, 05:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2012, 05:47
Помогаю со студенческими работами здесь

checkbox + php + mysql
Здравствуйте дорогие друзья! Я пишу скрипт отправки значения checkbox в базу данных, но НИКАК не...

CheckBox вывод данных из mysql
Здравствуйте. У меня есть 2 чек бокса которые выводятся из базы данных. Чекбоксу передаются...

Опять про checkbox, php, mysql
У меня есть 3 чекбокса: &lt;input type=&quot;checkbox&quot;&gt;Текст1&lt;br&gt; &lt;input type=&quot;checkbox&quot;&gt;Текст2 ...

Сохранение и обновление состояния checkbox в MySQL
Привет всем! Вопрос: Как сохранить чекбокс в БД? Есть скрипт: &lt;?php mysql_query(&quot;SET NAMES...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru