Неизвестное кол-во полей и обработка их в php

Coffin

Новичок
Неизвестное кол-во полей и обработка их в php

Вообщем задача такая!
Сначала пользователь видет :
<поле ввода name=text>
<кнопка "-" (недоступно)>\<кнопка "+">
<отправить type=submit>
Если он нажимает <кнопка "+">, то видет:
<поле ввода name=text>
<поле ввода name=text>
<кнопка "-" (доступно)>\<кнопка "+">
<отправить type=submit>
Если езе раз нажимает , то видет
<поле ввода name=text>
<поле ввода name=text>
<поле ввода name=text>
<кнопка "-" (доступно)>\<кнопка "+">
<отправить type=submit>
если жмет <кнопка "-" (доступно)>, то соответсвенно 1 поле убирается
Вообщем короче он выбрал скокахотел себе полей для ввода и нажал кнопку "Отправить" и вся эта дребедень передалась в php скрипт в котором это надо обработать!
так вот проблема в том как это все сделать ?
Частичный пример можно посмотреть в яндекс.почта, там есть такое , при добавлении файлов :)
Если кто знает как это все сделать , помогите плиз, very need

-~{}~ 05.12.04 22:41:

Нашел решение вопроса!
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
  <title></title>
<script>
var c=0; //счётчик количества строк
function addline()
{
        c++; // увеличиваем счётчик строк
        s=document.getElementById('table').innerHTML; // получаем HTML-код таблицы
        s=s.replace(/[\r\n]/g,''); // вырезаем все символы перевода строк
        re=/(.*)(<tr id=.*>)(<\/table>)/gi;
                // это регулярное выражение позволяет выделить последнюю строку таблицы
        s1=s.replace(re,'$2'); // получаем HTML-код последней строки таблицы
        s2=s1.replace(/\[\d+\]/gi,'['+c+']'); // заменяем все цифры к квадратных скобках
                // на номер новой строки
        s2=s2.replace(/(rmline\()(\d+\))/gi,'$1'+c+')');
                // заменяем аргумент функции rmline на номер новой строки
        s=s.replace(re,'$1$2'+s2+'$3');
                // создаём HTML-код с добавленным кодом новой строки
        document.getElementById('table').innerHTML=s;
                // возвращаем результат на место исходной таблицы
        return false; // чтобы не происходил переход по ссылке
}
function rmline(q)
{
                 if (c==0) return false; else c--;
                 //если раскомментировать предыдущую строчку, то последний (единственный)
                 //элемент удалить будет нельзя.
        s=document.getElementById('table').innerHTML;
        s=s.replace(/[\r\n]/g,'');
        re=new RegExp('<tr id="?newline"? nomer="?\\['+q+'.*?<\\/tr>','gi');
                // это регулярное выражение позволяет выделить строку таблицы с заданным номером
        s=s.replace(re,'');
                // заменяем её на пустое место
        document.getElementById('table').innerHTML=s;
        return false;
}
</script>


</head>
<body>
<?
if(!isset($_POST['elem'])){
echo "
<form action=index.php method=post>
<span id='table'>
<table border=1 cellspacing=0 cellpadding=0 >
<tr id='newline' nomer='[0]'>
 <td><input type='text' name='elem[0]'></td>
 <td valign='top'><a href='#' onclick='return addline();'>добавить</a> | <a href='#' onclick='return rmline(0);'>удалить</td>
</tr>
</table>
</span>
<input type=submit name=lbutton value=вход>
 </form>";
}
else{
  echo "Всего:".$s=count($_POST['elem'])."<br>";
  for($i=0;$i<$s;$i++){
   echo "Элемент №".$i."=".$_POST['elem'][$i]."<br>";
  }
}
?>
</body>
</html>
 
Сверху