[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Динамическое создание копий select с загрузкой эле
vovan1409
Задача. Есть обычный select со списком загружаемым из БД. По необходимости нужно нажатием кнопки создавать его копию с тем же набором элементов, отличающуюся только названием select. Кто как решал или решает такую задачу? Заранее спасибо!!!

//кусочек кода html с вкраплениями php-кода
...
<table id=\"pos\" cellpadding=\"3\" cellspacing=\"3\">
<tr>
<td>
<select name="
country" id="country">
<option value="
no"><?=$lang[516]?></option>
<?php
$lang=getlang().'name'; //получаю текущий язык
$query = mysql_query("SELECT `countryid`,".$lang." FROM `country`");
while($data = mysql_fetch_assoc($query)) {
echo "<option value=\"".$data['countryid']."\"";
if (@$_POST['country'] && $data[$lang]==$_POST['country']) echo " selected=\"selected\" ";
echo ">".$data[$lang]."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td align=
\"center\"><br />
//кнопка вызова функции сщздания экземпляра select
<input type=
\"button\" value=\"".$lang[512].$lang[524]."\" onclick=\"addp()\" onfocus=\"this.blur()\" />
</td>
</tr>
</table>
...


На js написан вот такой код для создания экземпляра select

//функция удаления созданого экземпляра
function delp(n){
var pos=$("pos");
if(pos.rows.length==2 && n==0){
document.forms["add_form"].reset();
return;
}
if(pos.rows.length>2){
if(n==0){return;}
else if(n==1){pos.tBodies[0].deleteRow(pos.rows.length-2);}
else{pos.tBodies[0].deleteRow(n.parentNode.parentNode.rowIndex);}}else{return;}
}

//создания экземпляра
function addp(){
var pos=$("pos");
var newRow=pos.tBodies[0].insertRow(pos.rows.length-1);
var newCell_1=newRow.insertCell(0);
newCell_1.style.border="none";
newCell_1.innerHTML="<span></span>";
var newfield=document.createElement("select");
newfield.setAttribute("name","plpos[]");
newCell_1.appendChild(newfield);
newRow.appendChild(newCell_1);
var newCell_2=newRow.insertCell(1);
var nb_2=document.createElement("input");
nb_2.setAttribute("type","button");
nb_2.setAttribute("value"," - ");
nb_2.title="<?=$lang[417]?>";
nb_2.onclick=function(){delp(this);}
newCell_2.appendChild(nb_2);
newRow.appendChild(newCell_2);
showIndexiup();
}
function showIndexiup(){
var pos=$("pos");
for(var i=0;i<pos.rows.length;i++){
var fc=pos.rows[i].firstChild;
fc.firstChild.innerHTML="";
}
}

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.