Добавление поля в форму методом PHP.
Ежедневно мы встречаемся с формами на интернет страницах, очень часто в них есть кнопка добавить строку. Эта кнопка передает функции JavaScript что нужно добавить еще одно поле. В интернете есть множество скриптов позволяющих это сделать, однако, для тех кто незнаком с JavaScript, или еще плохо в нем разбирается, понять как работает такой скрипты задача довольно сложная. В этой статье я постараюсь подробно описать, как создать добавление поля в форму методами PHP.
Задача: в форме есть поле, нужно нажатием на кнопку добавить еще одно.
Основная проблема в казалось бы простой задаче: у формы не может быть два действия action, если бы можно было задать их два, то проблемы бы не стояло, мы бы просто делали два обработчика, один обрабатывает форму, другой – добавляет поля.
Логика скрипта:
Окончательно страница будет выглядеть так:
<input name="button1" type="submit" value="Отправить" />
</form>
<?php
}
else
/*---Форма отправлена---*/
{
/*---Проверяем стоит ли галочка "Добавить поле"---*/
if (!empty($_POST['check']))
/*---Добавляем еще одно поле---*/
{
?>
<form action="index.php" method="post" name="form1">
<?php
/*---Проверяем было ли уже добавлено поле---*/
if (!isset($_POST['row_count']))
/*---Поле добавлено не было, нужно добавить еще одно---*/
{
// $row_count - счетчик количества полей в форме.
$row_count=2;
for ($i=0; $i<($row_count - 1); $i++)
{
?>
<input name="text[<?php echo($i);?>]" type="text" value="<?php echo($text[$i])?>"/><br>
<?php
}
?>
<!--Строка с пустыми полями-->
<input name="text[<?php echo($i);?>]" type="text" value=""/><br>
<?
$row_count = $row_count + 1;
?>
<input name="row_count" type="hidden" value="<?php echo($row_count);?>" />
<?php
}
else
{
$row_count = $_POST['row_count'];
for ($i=0; $i<($row_count - 1); $i++)
{
?>
<input name="text[<?php echo($i);?>]" type="text" value="<?php echo($text[$i]);?>"/><br>
<?php
}
?>
<!--Строка с пустыми полями-->
<input name="text[<?php echo($i);?>]" type="text" value=""/><br>
<?
$row_count = $row_count + 1;
?>
<input name="row_count" type="hidden" value="<?php echo($row_count);?>" />
<?php
}
?>
<input name="check" type="checkbox" value="addrow" onChange="Cheker()"/>
<input name="added" type="hidden" value="" />
<input name="added" type="hidden" value="" />
<input name="button1" type="submit" value="Отправить" />
</form>
<?php
}
else
{
//Печатаем переданный массив.
print_r($_POST);
}
}
?>
На первый взгляд очень сложно, но если разобраться в логике, то можно самому написать нечто подобное.
© 2010-2024 При использовании материалов ссылка на сайт www.webchaynik.ru обязательна