Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выделенные чекбоксы, записывает в базу, слово Array 
V
    Опции темы
ego1977
Дата 7.5.2011, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 5.11.2007

Репутация: нет
Всего: нет



Здравствуйте! Вот скрипт чекбоксов:

Код

<input type="checkbox" name="c[0]" value="value1" id="0">        
Åäèíîìûøëåííèê (ïîääåðæèâàåò èäåþ è ïîõîæå äóìàåò)
<input type="checkbox" name="c[1]" value="value2" id="1">
Àêòèâíûé ó÷àñòíèê (ïðèíèìàåò ïîñòîÿííîå àêòèâíîå ó÷àñòèå â äåÿòåëüíîñòè îðãàíèçàöèè)
<input type="checkbox" name="c[2]" value="value3" id="2">
Ïàññèâíûé ó÷àñòíèê (ïðèíèìàåò ìîðàëüíîå èëè èíôîðìàöèîííîå ó÷àñòèå â ïðîåêòå)
<input type="checkbox" name="c[3]" value="value4" id="3">


Вот обработка:

Код

$status = $_POST['c'];

$query2="INSERT INTO users (status)".
        "VALUES ('$status')";





В базу просто записывается слово Array. 
print_r($_POST); выводит Array ( [0] => on [1] => on ). Выделяла 1 и 3 чекбоксы.
Как записать выделенные чекбоксы?
PM MAIL   Вверх
ego1977
Дата 7.5.2011, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 5.11.2007

Репутация: нет
Всего: нет



Помогите мне пожалуйста.
PM MAIL   Вверх
Sanchezzz
Дата 7.5.2011, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



я бы записал в базу через "," 

То есть все значение чекбоксов "значение бокса 1, значение бокса 2 итд.

Вариант 1 
Код


$ch = '';
foreach($_POST['c'] as $item) {
    $ch = $ch = $item + ',';
}

print $ch;

//Преобразовать все обратно в массив 
$c = explode(',' , $ch);



Вариант 2
Код

// Получаем все данные в строку
  $ch = serialize($_POST['c']);
// получаем данные в массе обратно
 $c = unserialize($ch);


Если я не понял задачу опишите побольше, ответ будет другим = )

Добавлено через 1 минуту и 50 секунд
хм если это статусы то зачем выбирать много если отображать нужно 1 статус как правело или это другая задача ?


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
ego1977
Дата 7.5.2011, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 5.11.2007

Репутация: нет
Всего: нет



Спасибо! Получилось, только у меня записывается последний отмеченный чекбокс.

Добавлено через 51 секунду
Тут статусов может быть несколько.
PM MAIL   Вверх
patap
Дата 7.5.2011, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



что это за несколько статусов? 

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


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
ego1977
Дата 7.5.2011, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 5.11.2007

Репутация: нет
Всего: нет



Зачем отдельную? Человек может быть в нескольких статусах: например единомышленником и добровольцем или исполнителем. Я хочуу чтоб в одной колонке через запятую записывалось. Но сначала надо, чтобы как-то записывались все отмеченные.
PM MAIL   Вверх
Sanchezzz
Дата 7.5.2011, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



попробуйте name="c[]" у всех чекбоксов сделать и то что я вам дал до этого

Это сообщение отредактировал(а) Sanchezzz - 7.5.2011, 18:19


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
patap
Дата 7.5.2011, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



Цитата(ego1977 @  7.5.2011,  15:45 Найти цитируемый пост)
Я хочуу чтоб в одной колонке через запятую записывалось


с такой структурой неудобно (накладно) потом работать

Это сообщение отредактировал(а) patap - 7.5.2011, 18:39


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
ego1977
Дата 7.5.2011, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 5.11.2007

Репутация: нет
Всего: нет



Ничего не получается.
PM MAIL   Вверх
Sanchezzz
Дата 7.5.2011, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Код

<form action<?=$_SERVER['PHP_SELF']?>" method="post">
<input type="checkbox" name="c[]" value="value1" id="0">        
�������������� (������������ ���� � ������ ������)
<input type="checkbox" name="c[]" value="value2" id="1">
�������� �������� (��������� ���������� �������� ������� � ������������ �����������)
<input type="checkbox" name="c[]" value="value3" id="2">
��������� �������� (��������� ��������� ��� �������������� ������� � �������)
<input type="checkbox" name="c[]" value="value4" id="3">

<input type="submit" name="submit">
</form>

<?
$chs = '';
if(!empty($_POST['c']))
foreach($_POST['c'] as $value) {
    $chs.=  $value . ',';
}
print $chs;
?>



Извени что первый пример с + когда сидишь долго на javascript вспоминаешь что сложение строк в php через "."

Это сообщение отредактировал(а) Sanchezzz - 7.5.2011, 19:15


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
ego1977
Дата 7.5.2011, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 5.11.2007

Репутация: нет
Всего: нет



Спасибо! Получилось!
PM MAIL   Вверх
capitan
Дата 10.5.2011, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



При таком переборе, в строке появляется лишняя запятая в конце.
Я бы использовал join
Код

$status = '';
if(!empty($_POST['c'])){
    $status = join(', ', $_POST['c']);
}


Это сообщение отредактировал(а) capitan - 10.5.2011, 10:46
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0800 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.