массив из переданных через форму данных

  • Автор темы fashion guide
  • Дата начала

fashion guide

Guest
массив из переданных через форму данных

как наиболее рацианально сделать следующее:

есть форма, в которой множество checkbox'ов, имеющих уникальное имя вида c1, c2, c3...c150.

если пользователь выделит c2, c5 и c6.. как сделать так, чтобы было написано:

вы выделили: c2, c5 и c6.

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

DimbIch

Новичок
назови чекбоксы так 'c[]'
и все
получишь массив выделеных чекбоксов
 

fashion guide

Guest
Originally posted by DimbIch
fashion guide
ой я не всегда прав :)
а как можно передать массив через ссылку?

если записывать так c=$c, то в результате c=Array, то есть, превращается в слово.
 

advocat

developer
DimbIch
он хочет передать гетом свой массив :)
fashion guide
копать в сторону
PHP:
$get_c = '?';
foreach($c as $v) {
    $get_c .= '&c[]='.$v;
}
-~{}~ 31.10.04 12:20:

есть еще много вариантов :) напр при передаче ссылки '?c='.join(',', $c); и соответственно при получении $c = split(',', $_GET['c']);
 

fashion guide

Guest
Originally posted by DimbIch
fashion guide

это ты где так записываешь ?
приведи кусок кода побольше...
Как уже было тобой верно подмечено, я создал все checkbox'ы с именем c[], но value сделал для каждого уникальным, в соответствии с его id.

получился массив, состоящий из id выделенных чекбоксов.

пользователь нажимает submit и переходит на страницу обработки. Но есть необходимость ответить на вопрос, действительно ли он сделал такой выбор, а не ткнул куда попало..

if (q=="no" or q=='') // это вопрос, действительно ли они выбрали то, что задумали. В самом низу есть ссылка с параметрами yes, или no. Ниже представлен отрезок, при "no", или вообще ничего не указаном.
{
foreach ($c as $name) // представляет элементы в виде $name
{
$sql_del = mysql_query("SELECT * FROM $db_name WHERE id='$name'"); // $name представленно в виде id
$var = mysql_fetch_array($sql_del);

while ($y<$colum_rows) // необходимая махинация, она выполняется в соответствии с настройками таблицы, это не главное..
{
$y++;
$numd = "1";
$del = "'$var[$numd]'";
$numd++;
$del = "$del, '$var[$numd]'";
}
echo "<br>Вы уверены, что хотите удалить: $del?<br>"; // здесь, выводится запись, со всеми выделенными ранее боксами.
$y="0";
}
}
echo "<br><a href='tmp.php?modul=$modul&q=yes&c=$c '><img border='0' src='images/delete.gif'></a> <a href='del.php?modul=$modul&id=$id&q=no'><img border='0' src='images/cancel.gif'></a>"; // а здесь нужно заного передать массив, для подтверждения
 

advocat

developer
с таким кодом используй для подтверждения не гет а пост

-~{}~ 31.10.04 12:43:

также, учись использовать hidden поля :)
 

DimbIch

Новичок
я бы на твоем месте сделал либо хидден поля как уже сказал Адвокат...
либо serialize в сессию... если тебе уж так надо по страницам передавать массивы...
ну это имхо....
 
Сверху