Надо функцию, добавляющую поле к форме, заюзать в двух местах в одной форме. В смысле, есть два не зависящих друг от друга поля, которые будут дублироваться.
Это скриптик, который я нашла:
var c=0;
function rmline(q) {
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;
}
function addline() {
c++;
s=document.getElementById('table').innerHTML;
s=s.replace(/[\r\n]/g,'');
re=/(.*)(<tr id=.*>)(<\/table>)/gi;
re2=/\[\d+\]/gi;
s1=s.replace(re,'$2');
s2=s1.replace(re2,'['+c+']');
s2=s2.replace(/(rmline\()(\d+\))/gi,'$1'+c+')');
s=s.replace(re,'$1$2'+s2+'$3');
document.getElementById('table').innerHTML=s;
return false;
}
А так у меня выглядит кусочек, где он используется:
<span id="table">
<table>
<tr>
<td>'.$text.'</td>
<td><a href="#" onclick="return addline();">добавить</a></td>
</tr>
<tr id="newline" nomer="[0]">
<td><input type="text" name="'.$fieldname.'[0]" size=24></td>
<td valign="top"><a href="#" onclick="return rmline(0);">удалить</a></td>
</tr>
</table>
</span>
<input type="hidden" name="count" value="0">
Если я правильно понимаю (что не факт), надо, чтобы при тыке на "добавить" отправлялось еще какое-то значение (пусть fieldname), а в скрипте оно учитывалось и скрипт выполнялся именно в поле с этим значением...
В JavaScript не разбираюсь. Совсем
Вариант забить на это и поэтапно добавить сначала одно, потом другое, не рассматривается.
Вариант скопировать скрипт целиком и приткнуть в обоих местах с разным id рассматривается, но как-то это некрасиво, мне кажется, что по-другому должно быть :rolleyes: