все checkbox в одной переменной

Статус
В этой теме нельзя размещать новые ответы.

Dark Wizard

Гуру форума
Регистрация
23 Сен 2007
Сообщения
194
Реакции
80
Проблема

есть форма с метками:

HTML:
<input type="checkbox" name="tags" value="бежевые">&nbsp;бежевые<br>
<input type="checkbox" name="tags" value="белые">&nbsp;белые<br>
<input type="checkbox" name="tags" value="голубые">&nbsp;голубые<br>
<input type="checkbox" name="tags" value="желтые">&nbsp;желтые<br>

мне нужно все метки засунуть в одну переменную, через запятую.

PHP:
$tags=$_POST['tags'];
if(!empty($tags))
{
foreach($tags as $val) $tagsall.= $val.",";
}

не работает =(

да и print_r($_POST); почему-то выдаёт только первый тег.

Помогите, пожалуйста...
 
<input type="checkbox" name="tags[]"

....

foreach ( $_REQUEST['tags'] as $value )
{
$tags .= $value.",";
}

$tags = substr($tags, 0, -1);
 
tarantas, на
PHP:
foreach ($_REQUEST['tags'] as $value)
выдаёт ошибку:

Warning: Invalid argument supplied for foreach() in Z:\home\test1.ru\www\ba\add_project.php on line 66
 
Значит форма не передает tags в php.
Смотри html, скорее всего ошибка гдето там.
 
полный листинг:

HTML:
<form action="add_project.php?action=add" method=post enctype=multipart/form-data>

<input type="checkbox" name="tags[]" value="бежевые">&nbsp;бежевые<br>
<input type="checkbox" name="tags[]" value="белые">&nbsp;белые<br>
<input type="checkbox" name="tags[]" value="голубые">&nbsp;голубые<br>
<input type="checkbox" name="tags[]" value="желтые">&nbsp;желтые<br>
<input type="checkbox" name="tags[]" value="зеленые">&nbsp;зеленые<br>
<input type="checkbox" name="tags[]" value="коричневые">&nbsp;коричневые<br>
<input type="checkbox" name="tags[]" value="красные">&nbsp;красные
</td><td valign=top>
<input type="checkbox" name="tags[]" value="оранжевые">&nbsp;оранжевые<br>
<input type="checkbox" name="tags[]" value="розовые">&nbsp;розовые<br>
<input type="checkbox" name="tags[]" value="серые">&nbsp;серые<br>
<input type="checkbox" name="tags[]" value="синие">&nbsp;синие<br>
<input type="checkbox" name="tags[]" value="сиреневые">&nbsp;сиреневые<br> 
<input type="checkbox" name="tags[]" value="черные">&nbsp;черные
</td><td valign=top>
<input type="checkbox" name="tags[]" value="баннеры">&nbsp;баннеры<br>
<input type="checkbox" name="tags[]" value="виджеты">&nbsp;виджеты<br>
<input type="checkbox" name="tags[]" value="закругленные">&nbsp;закругленные<br>
<input type="checkbox" name="tags[]" value="календарь">&nbsp;календарь<br>
<input type="checkbox" name="tags[]" value="левое меню">&nbsp;левое меню<br>
<input type="checkbox" name="tags[]" value="меню внизу">&nbsp;меню внизу<br>
<input type="checkbox" name="tags[]" value="меню 2 стороны">&nbsp;меню 2 стороны<br>
</td><td valign=top>
<input type="checkbox" name="tags[]" value="настраиваемые">&nbsp;настраиваемые<br>
<input type="checkbox" name="tags[]" value="правое меню">&nbsp;правое меню<br>
<input type="checkbox" name="tags[]" value="резиновые">&nbsp;резиновые<br>
<input type="checkbox" name="tags[]" value="1 колонка">&nbsp;1 колонка<br>
<input type="checkbox" name="tags[]" value="2 колонки">&nbsp;2 колонки<br>
<input type="checkbox" name="tags[]" value="3 колонки">&nbsp;3 колонки<br>
<input type="checkbox" name="tags[]" value="4 колонки">&nbsp;4 колонки<br>
<input type="checkbox" name="tags[]" value="java&tabs">&nbsp;java&tabs
<input type=submit name=upload value="Послать проект на модерацию">

вот...
 
Попробуй :
1. убрать enctype=multipart/form-data
2. Закрыть форму ( </form> )
3. Сделать print_r($_REQUEST);
 
1. не могу, т.к. ещё файл загружаю через <input type=file>.
2. закрыта, забыл дописать
3. выдаёт в одном месте
PHP:
[tags] => серые
и всё...

P.S. 1. убрал, не помогло...

P.P.S. Такой вариант
PHP:
<?
print_r($_REQUEST);
?>
<form action="test.php" method=post enctype=multipart/form-data>
<br><br>
<input type="checkbox" name="tags[]" value="бежевые">&nbsp;бежевые<br>
<input type="checkbox" name="tags[]" value="белые">&nbsp;белые<br>
<input type="checkbox" name="tags[]" value="голубые">&nbsp;голубые<br>
<input type="checkbox" name="tags[]" value="желтые">&nbsp;желтые<br>
<input type="checkbox" name="tags[]" value="зеленые">&nbsp;зеленые<br>
<input type="checkbox" name="tags[]" value="коричневые">&nbsp;коричневые<br>
<input type="checkbox" name="tags[]" value="красные 1">&nbsp;красные<br><br>
<input type=submit value="отправить">
</form>

вроде работает... буду думать
 
Советую кодить с E_ALL и читать мануал php.net

Код:
$tagsall = join(',', $tags);
 
Ничего не понимаю...

PHP:
<?
$tags=$_POST['tags'];
$tags2=$_POST['tags2'];
$tagsall = join(', ', $tags);
$tagsall .= $tags2;
echo $tagsall;
?>
<form action="test.php" method=post enctype=multipart/form-data>
<br><br>
<input type="checkbox" name="tags[]" value="бежевые">&nbsp;бежевые<br>
<input type="checkbox" name="tags[]" value="белые">&nbsp;белые<br>
<input type="checkbox" name="tags[]" value="голубые">&nbsp;голубые<br>
<input type="checkbox" name="tags[]" value="желтые">&nbsp;желтые<br>
<input type="checkbox" name="tags[]" value="зеленые">&nbsp;зеленые<br>
<input type="checkbox" name="tags[]" value="коричневые">&nbsp;коричневые<br>
<input type="checkbox" name="tags[]" value="красные&1">&nbsp;красные<br><br>
<input type=text name=tags2><br><br>
<input type=submit name=upload value="отправить">
</form>

отлично работает.

а

PHP:
<?
	include('header.php');
?>
<h2>Добавление нового проекта</h2>
<?
$action=$_GET['action'];

$project=$_POST['project'];
$type=$_POST['type'];
$price=$_POST['price'];
$about=$_POST['about'];
$code=$_POST['code'];
$tags=$_POST['tags'];
$tags2=$_POST['tags2'];

$tagsall = join(',', $tags);
$tagsall .= $tags2;

$id=mysql_num_rows(mysql_query("select * from ba_catalog"));



if($action=='add')
{

//проверка данных
$max_image_width	= 130;
$max_image_width_big	= 700;
$max_image_height	= 130;
$max_image_height_big	= 1200;
$max_image_size		= 40 * 1024;
$max_image_size_big		= 1 * 1024 * 1024;
$valid_types_pic 		=  array("jpg");
$valid_types_place 		=  array("rar", "zip");
$ext_place = substr($_FILES['place']['name'], 1 + strrpos($_FILES['place']['name'], "."));
$ext_prepic = substr($_FILES['prepic']['name'], 1 + strrpos($_FILES['prepic']['name'], "."));
$ext_pic1 = substr($_FILES['pic1']['name'], 1 + strrpos($_FILES['pic1']['name'], "."));
$ext_pic2 = substr($_FILES['pic2']['name'], 1 + strrpos($_FILES['pic2']['name'], "."));
$sizeprepic = GetImageSize($prepic);
$sizepic1 = GetImageSize($pic1);
$sizepic2 = GetImageSize($pic2);

if($project==''){echo "Вы забыли указать название проекта!<br><br><a href=\"javascript:history.back();\">Вернуться</a>.";
}elseif($price<0){echo "Вы неправильно указали цену!<br><br><a href=\"javascript:history.back();\">Вернуться</a>.";
}elseif(($price>0)and($code=='')){echo "Вы забыли указать пароль!<br><br><a href=\"javascript:history.back();\">Вернуться</a>.";}
elseif($about==''){echo "Вы не заполнили описание проекта!<br><br><a href=\"javascript:history.back();\">Вернуться</a>.";}
elseif($_FILES["place"]["size"] <1){echo "Вы не выбрали архив!<br><br><a href=\"javascript:history.back();\">Вернуться</a>.";}
elseif($_FILES["prepic"]["size"] <1){echo "Вы не мини картинку!<br><br><a href=\"javascript:history.back();\">Вернуться</a>.";}
elseif($_FILES["pic1"]["size"] <1){echo "Вы не выбрали изображение 1!<br><br><a href=\"javascript:history.back();\">Вернуться</a>.";}
elseif(!in_array($ext_place, $valid_types_place)){echo 'Файл не являеся архивом. Нужно выбрать rar или zip архив!';}
elseif(!in_array($ext_prepic, $valid_types_pic)){echo 'Мини картинка должна быть в формате JPG!';}
elseif(!in_array($ext_pic1, $valid_types_pic)){echo 'Изображение 1 должно быть в формате JPG!';}
elseif((!in_array($ext_pic2, $valid_types_pic))and($_FILES["pic2"]["size"] >1)){echo 'Изображение 2 быть в формате JPG!';}
elseif(($sizeprepic) && ($sizeprepic[0] <> $max_image_width) && ($sizeprepic[1] <> $max_image_height)) {echo 'Мини картинка должна быть 130 на 130 пикселей и не больше 40 килобайт!';}
elseif(($sizepic1) && ($sizepic1[0] > $max_image_width_big) && ($sizepic1[1] > $max_image_height_big)) {echo 'Максимальные размеры изображения 1 - ширина 700px, высота 1200px';}
elseif((($sizepic2) && ($sizepic2[0] > $max_image_width_big) && ($sizepic2[1] > $max_image_height_big))and($_FILES["pic2"]["size"] >1)) {echo 'Максимальные размеры изображения 2 - ширина 700px, высота 1200px';}
elseif($_FILES["prepic"]["size"] > $max_image_size){echo "Мини картинка не должна весить больше 40 килобайт!<br><br><a href=\"javascript:history.back();\">Вернуться</a>.";}
elseif($_FILES["pic1"]["size"] > $max_image_size_big){echo "Изображение 1 не должно весить больше 1 мегабайта!<br><br><a href=\"javascript:history.back();\">Вернуться</a>.";}
elseif($_FILES["pic2"]["size"] > $max_image_size_big){echo "Изображение 2 не должно весить больше 1 мегабайта!<br><br><a href=\"javascript:history.back();\">Вернуться</a>.";}
else
	{
//если всё верно
echo "<b>".$project."</b><br><br>";

echo "Категория: ";
showprojecttype($type);
echo "<br>Метки: ";

echo "<br>".$tagsall.".<br><br>";

echo "Загружаем файлы...<br><br>";

if(!is_dir("catalog/".$id)and(!mkdir("catalog/".$id, 0777)))
{
echo "Ошибка при создании директории";
exit;
}
chmod ("catalog/".$id, 0777);

   if($_FILES["place"]["size"] > 1024*10*1024)
   {
     echo ("Размер архива превышает 10 мегабайт");
     exit;
   }
   if(copy($_FILES["place"]["tmp_name"], "catalog/".$id."/".$_FILES["place"]["name"]))
   {
copy($_FILES["prepic"]["tmp_name"], "catalog/".$id."/".$_FILES["prepic"]["name"]);
rename("catalog/".$id."/".$_FILES["prepic"]["name"], "catalog/".$id."/prepic.jpg");

copy($_FILES["pic1"]["tmp_name"], "catalog/".$id."/".$_FILES["pic1"]["name"]);
rename("catalog/".$id."/".$_FILES["pic1"]["name"], "catalog/".$id."/pic1.jpg");

if($_FILES["pic2"]["size"] > 0){
copy($_FILES["pic2"]["tmp_name"], "catalog/".$id."/".$_FILES["pic2"]["name"]);
rename("catalog/".$id."/".$_FILES["pic2"]["name"], "catalog/".$id."/pic2.jpg");
}

echo "<img src=\"catalog/".$id."/prepic.jpg\" width=130 height=130 border=1 align=left style=\"margin-right:20px;\">";
echo showbr($about);
echo "<br><br><br>";
   
     echo("Архив успешно загружен!<br><br>");
     echo("<b>Характеристики архива:</b> <br>");
     echo("Имя архива: ");
     echo($_FILES["place"]["name"]);
     echo("<br>Размер архива: ");
     echo(intval($_FILES["place"]["size"]/1000));
	 echo " килобайт";
   } else {
      echo("Ошибка загрузки архива<br><br>");
   }

echo "<br><br>Проект № ".$id." отправлен на модерацию. Спасибо за добавление!<br><br><br><br>";
echo "<a href=\"index.php\">На Главную</a> или <a href=\"add_project.php\">добавить ещё один проект</a>.";
	}
}
else
{
?>
<form action="add_project.php?action=add" method=post enctype=multipart/form-data>
<table class=text border=0 cellspacing=10>
<tr><td colspan=2>Название:&nbsp;&nbsp;<input type=text name=project></td>
<td colspan=2>Цена:&nbsp;&nbsp;<input type=text name=price value="0">&nbsp;руб.</td></tr>
<tr><td colspan=4>
<b>Категория:</b><br>
<table class=text cellspacing=4 width=100%>
<tr><td>
<input type="radio" name="type" value="web20">&nbsp;WEB 2.0<br>
<input type="radio" name="type" value="flash">&nbsp;Flash сайты<br>
<input type="radio" name="type" value="auto">&nbsp;Автомобили<br>
<input type="radio" name="type" value="nograth">&nbsp;Без графики<br>
<input type="radio" name="type" value="business">&nbsp;Бизнес<br>
<input type="radio" name="type" value="guild">&nbsp;Гильдии и Кланы<br>
</td><td>
<input type="radio" name="type" value="city">&nbsp;Городские и учебные<br>
<input type="radio" name="type" value="other" checked>&nbsp;<b>Другие</b><br>
<input type="radio" name="type" value="dating">&nbsp;Знакомства<br>
<input type="radio" name="type" value="art">&nbsp;Искусство и Фото<br>
<input type="radio" name="type" value="food">&nbsp;Кафе и Рестораны<br>
<input type="radio" name="type" value="books">&nbsp;Книги<br>
</td><td>
<input type="radio" name="type" value="furniture">&nbsp;Мебель<br>
<input type="radio" name="type" value="medcine">&nbsp;Медицина<br>
<input type="radio" name="type" value="mini">&nbsp;Минимализм<br>
<input type="radio" name="type" value="science">&nbsp;Наука<br>
<input type="radio" name="type" value="personal">&nbsp;Персональные<br>
<input type="radio" name="type" value="portal">&nbsp;Порталы<br>
</td><td>
<input type="radio" name="type" value="premium">&nbsp;Премиум<br>
<input type="radio" name="type" value="nature">&nbsp;Природа<br>
<input type="radio" name="type" value="travel">&nbsp;Путешествия<br>
<input type="radio" name="type" value="games">&nbsp;Развлечения<br>
<input type="radio" name="type" value="religion">&nbsp;Религия<br>
<input type="radio" name="type" value="married">&nbsp;Свадьба<br>
</td><td>
<input type="radio" name="type" value="computer">&nbsp;Связь и Компьютеры<br>
<input type="radio" name="type" value="soft">&nbsp;Софт<br>
<input type="radio" name="type" value="sport">&nbsp;Спорт<br>
<input type="radio" name="type" value="building">&nbsp;Строительство<br>
<input type="radio" name="type" value="hosting">&nbsp;Хостинг<br>
<input type="radio" name="type" value="jewel">&nbsp;Ювелирка<br>
</td></tr>
</table>

</td></tr>
<tr><td>Архив*:</td>
<input type="hidden" name="MAX_PLACE_SIZE" value="10000000">
<td><input type=file name=place></td>
<td>Картинка (130х130)</td>
<td><input type=file name=prepic></td>
</tr>
<tr><td>Пароль на архив:</td>
<td><input type=text name="code"></td>
<td>Изображение 1:</td>
<td><input type=file name=pic1></td>
</tr>
<tr><td colspan=2><i>*до 10mb в формате zip; в архиве PSD дизайна</i></td><td>Изображение 2:</td><td><input type=file name=pic2></td></tr>

<tr><td colspan=2><b>Подробное описание:</b></td>
<td colspan=2 align=center><i>Все картинки должны быть в формате JPG.</i></td>
</tr>
<tr><td colspan=4><textarea name="about" style="width:100%" rows=10></textarea></td></tr>

<tr><td colspan=4>
<b>Метки:</b></tr>
<tr><td colspan=4>

<table class=text cellspacing=2 width=100%>
<tr>
<td><b>по цвету:</b></td>
<td></td>
<td><b>по структуре:</b></td>
<td></td>
</tr>
<tr>
<td valign=top>
<input type="checkbox" name="tags[]" value="бежевые">&nbsp;бежевые<br>
<input type="checkbox" name="tags[]" value="белые">&nbsp;белые<br>
<input type="checkbox" name="tags[]" value="голубые">&nbsp;голубые<br>
<input type="checkbox" name="tags[]" value="желтые">&nbsp;желтые<br>
<input type="checkbox" name="tags[]" value="зеленые">&nbsp;зеленые<br>
<input type="checkbox" name="tags[]" value="коричневые">&nbsp;коричневые<br>
<input type="checkbox" name="tags[]" value="красные">&nbsp;красные
</td><td valign=top>
<input type="checkbox" name="tags[]" value="оранжевые">&nbsp;оранжевые<br>
<input type="checkbox" name="tags[]" value="розовые">&nbsp;розовые<br>
<input type="checkbox" name="tags[]" value="серые">&nbsp;серые<br>
<input type="checkbox" name="tags[]" value="синие">&nbsp;синие<br>
<input type="checkbox" name="tags[]" value="сиреневые">&nbsp;сиреневые<br> 
<input type="checkbox" name="tags[]" value="черные">&nbsp;черные
</td><td valign=top>
<input type="checkbox" name="tags[]" value="баннеры">&nbsp;баннеры<br>
<input type="checkbox" name="tags[]" value="виджеты">&nbsp;виджеты<br>
<input type="checkbox" name="tags[]" value="закругленные">&nbsp;закругленные<br>
<input type="checkbox" name="tags[]" value="календарь">&nbsp;календарь<br>
<input type="checkbox" name="tags[]" value="левое меню">&nbsp;левое меню<br>
<input type="checkbox" name="tags[]" value="меню внизу">&nbsp;меню внизу<br>
<input type="checkbox" name="tags[]" value="меню 2 стороны">&nbsp;меню 2 стороны<br>
</td><td valign=top>
<input type="checkbox" name="tags[]" value="настраиваемые">&nbsp;настраиваемые<br>
<input type="checkbox" name="tags[]" value="правое меню">&nbsp;правое меню<br>
<input type="checkbox" name="tags[]" value="резиновые">&nbsp;резиновые<br>
<input type="checkbox" name="tags[]" value="1 колонка">&nbsp;1 колонка<br>
<input type="checkbox" name="tags[]" value="2 колонки">&nbsp;2 колонки<br>
<input type="checkbox" name="tags[]" value="3 колонки">&nbsp;3 колонки<br>
<input type="checkbox" name="tags[]" value="4 колонки">&nbsp;4 колонки<br>
<input type="checkbox" name="tags[]" value="java tabs">&nbsp;java&tabs</td>
</tr>
</table>
</td></tr>
<tr><td colspan=4>Свои&nbsp;метки&nbsp;(через&nbsp;запятую):&nbsp;&nbsp;<input type=text name=tags2 style="width:70%"></td></tr>
</table>
<center><input type=submit name=upload value="Послать проект на модерацию"></center>
</form>
<?
}
?>

<?
include('sidebar.php');
include('footer.php');
?>

не работает. Выдаёт:

Warning: join() [function.join]: Bad arguments. in Z:\home\test1.ru\www\ba\add_project.php on line 16
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху