Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > метод POST checkbox, button


Автор: Norfonzor 6.12.2010, 10:12
Существуют 4 Checkbox-a, и отдельно внизу N-ое кол-во кнопок,  необходимо по нажатию на кнопки передать методом POST результат отмеченности Checkbox-ов, и другие переменные из формы.

создаю Checkbox-ы:
Код

<?php
for ($i = 1; $i <= 4; $i++) {
echo ('<input type="hidden" name="checkbox');
echo $i;
echo('" value="0"><input type="checkbox" name="checkbox');
echo $i;
echo('" value="1" />Ответ');
echo $i;
echo "<br/>";

}

?>


Создаю Button-ы:
Код

<table cellspacing="0" cellpadding="1">
<tr>

<?php

for ($i = 1; $i <= 100; $i++) {

if((($i-1) % 30)==0)echo("</tr><tr>");

echo('<td align="center"><input name="button');
echo $i;
echo('" type="button" value="');
echo $i;
echo('" onclick="top.location.href=');
?>
'http://localhost/my/result.php/'"/>

<?php
echo("</td>");

}

?>

</tr>
</table>


как мне передать $checkbox1 .. $checkbox4, peremenaya1, peremenaya2 в http://localhost/my/result.php по нажатию на button-ы

Автор: supercelt 6.12.2010, 10:56
Судя по коду у всех чекбоксов будет одинаковое имя. Придёт результат из последнего бокса. А вообще всё что было в форме содержится в массиве $_POST

Автор: Norfonzor 6.12.2010, 11:07
supercelt, echo $i; определяет номер checkbox, checkbox1, checkbox 2, checkbox3, checkbox4.
Но я ведь не передавл через POST?? 

Автор: skyboy 6.12.2010, 11:42
<form> где? есть он вообще?
не понимаю, в чем проблема. 
есть форма, с кучей элементов. среди прочего - целый ряд submit'ов. каждый из них сможет
Цитата(Norfonzor @  6.12.2010,  09:12 Найти цитируемый пост)
передать методом POST результат отмеченности Checkbox-ов, и другие переменные из формы


Автор: Norfonzor 6.12.2010, 11:44
skyboy, <form> нет, я не знаю куда его написать.  smile  как отправить Submit-ом, переменные

Автор: bars80080 6.12.2010, 11:57
Цитата(Norfonzor @  6.12.2010,  10:44 Найти цитируемый пост)
как отправить Submit-ом, переменные

а как это делается обычно хтмл-формой?

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

Автор: skyboy 6.12.2010, 12:03
http://php.net/manual/en/tutorial.forms.php
а вообще, да, надо бы HTML освоить сначала.

Автор: Norfonzor 6.12.2010, 12:16
стандартная конструкция:
_____________________________________________________________
<form action="куда" method="post/get">
что передать (<input type="checkbox, text, radio, password, hidden...)
кнопка отправить   (<input type="submit" /> )
</form>
_____________________________________________________________




а мне необходимо:
_____________________________________________________________
что передать  (<input type="checkbox, text, radio, password, hidden...)
...
текст
...
кнопка отправить   (<input type="submit" /> )
_____________________________________________________________


я не могу написать так:
_____________________________________________________________
<form action="куда" method="post/get">
что передать (<input type="checkbox, text, radio, password, hidden...)
</form>
...
текст
...
кнопка отправить   (<input type="submit" /> )
_____________________________________________________________


Автор: bars80080 6.12.2010, 12:18
Цитата(Norfonzor @  6.12.2010,  11:16 Найти цитируемый пост)
я не могу написать так:

почему?

Автор: supercelt 6.12.2010, 12:23
Norfonzor  тогда должно быть вот так если чеки от $i

<?php
for ($i = 1; $i <= 4; $i++) {
echo ('<input type="hidden" name="checkbox" ');
echo $i;
echo('" value="0"><input type="checkbox" name="checkbox['.$i.']" ');
echo $i;
echo('" value="1" />Ответ');
echo $i;
echo "<br/>";
}
?>

Цитата
Но я ведь не передавл через POST??

Цитата
необходимо по нажатию на кнопки передать методом POST результат отмеченности

Автор: Norfonzor 7.12.2010, 07:53
 smile Разобрался, помогло echo var_dump($_POST);

код отправляющего файла:

index.php:
Код

<?php
echo ('<form action="http://localhost/my/result.php" method="post">');
for ($i = 1; $i <= 4; $i++)
{
echo ('<input type="hidden" name="checkbox['.$i.']" value="0">');
echo('<input type="checkbox" name="checkbox['.$i.']"  value="1" />Ответ'.$i.'<br/>');
}

for ($i = 1; $i <= 100; $i++)
{
echo('<input name="button['.$i.']" type="submit" value="'.$i.'">');
}
echo("</form>");
?>



код принимающего файла
result.php:
Код

<?php
function checkbox_verify()
{

$checkbox = $_POST['checkbox'];

if (isset($checkbox[1]))
{
if ($checkbox[1]==1)
{$result="ОТМЕЧЕН";}
else
{$result="НЕ ОТМЕЧЕН";};
} else
{
$result="НЕ ПЕРЕДАН";
}

return $result;
}

echo checkbox_verify();
?>




Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)