|
|
|
| Вобщем имеется такая форма:
<form enctype='multipart/form-data' action='test2.php' method=post>
<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>
<span id="table">
<table border=0 cellspacing=0 cellpadding=3>
<tr>
<td>Дата</td>
<td>Время</td>
<td>Место</td><td>
<a href="#" onclick="return addline();">добавить</a></td></tr>
<tr id="newline" nomer="[0]">
<td><input type="text" name="date[0]"></td>
<td><input type="text" name="sean[0]"></td>
<td><input type="text" name="place[0]"></td>
<td valign="top"><a href="#" onclick="return rmline(0);">удалить</td></tr></table>
</span>
<input class=button type=submit value=передать>
</form>
|
В файле test2.php надо получить переменую "c". Либо как-то узнать сколько раз я добавил поля в форме. | |
|
|
|
|
|
|
|
для: lord
(30.11.2005 в 16:20)
| | Ну, добавь в форме что-нибудь типа:
document.write('<input type="hidden" name="var_c" value="'+c+'">')
|
т.е. скрытое поле, у которого в value будет твоя переменная "с". И в test2.php ее потом выловить. | |
|
|
|
|
|
|
|
для: WebTech
(30.11.2005 в 16:52)
| | Что-то у меня не получается... Я хочу эту переменную получить в другом файле вот так
<?print_r($_POST);
echo "Переменная : ".$_POST['var_c'];
?>
|
| |
|
|
|
|
|
|
|
для: lord
(30.11.2005 в 17:27)
| | На самом деле оказалось просто посчитать количество новых полей. Так как у меня получается массив, то я могу узнать его размер, который и будет равен количеству полей.
Спасибо. | |
|
|
|