所以我明白了:
的 HTML 的
<table id="mytable">
<tr>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
3. Choose elements:
</td>
<td>
<select name="antal_tidspunkter" id="antal_tidspunkter">
<option value="1" SELECTED>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</td>
</tr>
<tr class="highlightedRowStart">
<td class="borderLeft">
Time
</td>
<td class="borderRight">
<select name="seats_timeclock[29]">
<option value="08:00">08:00</option>
<option value="08:30">08:30</option>
<option value="09:00">09:00</option>
<option value="09:30">09:30</option>
<option value="10:00">10:00</option>
<option value="10:30">10:30</option>
<option value="11:00">11:00</option>
<option value="11:30">11:30</option>
<option value="12:00">12:00</option>
<option value="12:30">12:30</option>
<option value="13:00">13:00</option>
<option value="13:30">13:30</option>
<option value="14:00">14:00</option>
<option value="14:30">14:30</option>
<option value="15:00">15:00</option>
<option value="15:30">15:30</option>
<option value="16:00">16:00</option>
<option value="16:30">16:30</option>
<option value="17:00">17:00</option>
<option value="17:30">17:30</option>
<option value="18:00" SELECTED>18:00</option>
<option value="18:30">18:30</option>
<option value="19:00">19:00</option>
<option value="19:30">19:30</option>
<option value="20:00">20:00</option>
<option value="20:30">20:30</option>
<option value="21:00">21:00</option>
<option value="21:30">21:30</option>
<option value="22:00">22:00</option>
<option value="22:30">22:30</option>
</select>
</td>
</tr>
<tr class="highlightedRowMiddle">
<td class="borderLeft">
2:
</td>
<td class="borderRight">
<select name="seats_free_2tables[29]">
<option value="0">0</option>
<option value="1">1</option>
<option value="2" SELECTED>2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
</select>
</td>
</tr>
<tr class="">
<td class="borderLeft">
4:
</td>
<td class="borderRight">
<select name="seats_free_4tables[29]">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4" SELECTED>4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
</select>
</td>
</tr>
<tr class="highlightedRowEnd">
<td class="borderLeft">
Converttable
</td>
<td class="borderRight">
<select name="seats_converttables[29]">
<option value="0">0</option>
<option value="1">1</option>
<option value="2" SELECTED>2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
</select>
</td>
</tr>
<tr class="spacer">
<td></td>
</tr>
</table>
的的jQuery 的
$(document).ready(function() {
$("#antal_tidspunkter").bind("change", function() {
$("#mytable tr:gt(6)").remove();
for (var i = 1; i < this.value; i++) {
$("#mytable tr:gt(1):lt(5)").clone().appendTo("#mytable");
}
});
});
DEMO: http://jsfiddle.net/bTWQg/
这样工作,当您更改选择器中的元素数量时,它会添加更多元素。
我的问题是,当它复制元素时,它会保留名称:seats_timeclock[29]
所以稍后当我处理表单( PHP )时,我只接收一个元素的数据。
每次元素重复时,是否有[]
来自11111, 99999
的随机数?否则我无法获取新元素上填充的数据..
答案 0 :(得分:1)
使用此代码:
$(document).ready(function(){
$("#antal_tidspunkter").bind("change", function() {
$("#mytable tr:gt(6)").remove();
for (var i = 1; i < this.value; i++) {
$("#mytable tr:gt(1):lt(5)").clone().children("select").attr("name", "seats_free_2tables[" + random() + "]").appendTo("#mytable");
}
});
});
对于random()
函数,请使用以下代码:
function random()
{
return Math.floor(Math.random()*10);
}
function random()
{
return Math.floor(Math.random()*10);
}
$(document).ready(function(){
$("#antal_tidspunkter").bind("change", function() {
$("#mytable tr:gt(6)").remove();
for (var i = 1; i < this.value; i++) {
var a = $("#mytable tr:gt(1):lt(5)").clone();
a.find(".random").attr("name", "seats_free_2tables[" + random() + "]");
a.appendTo("#mytable");
}
});
});
见fiddle。向所有人提供课程random
,您需要更改!
答案 1 :(得分:1)
$(document).ready(function() {
// function to generate random number
// between 1111 to 9999
function randNum() {
return Math.floor(Math.random() * (9999 - 1111 + 1)) + 1111;
}
$("#antal_tidspunkter").bind("change", function() {
$("#mytable tr:gt(6)").remove();
for (var i = 1; i < this.value; i++) {
$("#mytable tr:gt(1):lt(5)")
.clone()
.find('select[name^=seats_timeclock]')
attr('name', function() { // changing the name
return 'seats_timeclock_[' + randNum() + ']';
})
.end() // go back to clone element
.appendTo("#mytable");
}
});
});
<强> DEMO 强>
上面的代码可以在不改变HTML和单个链语句的情况下工作。
$(document).ready(function() {
// function to generate random number
function randNum() {
return Math.floor(Math.random() * (9999 - 1111 + 1)) + 1111;
}
$("#antal_tidspunkter").bind("change", function() {
$("#mytable tr:gt(6)").remove();
for (var i = 1; i < this.value; i++) {
var randnr = randNum();
$("#mytable tr:gt(1):lt(5)")
.clone()
.find('select[name^=seats_timeclock]')
.attr('name', function() { // changing the name
return 'seats_timeclock[' + randnr + ']';
})
.end() // need to put end to jump to clone
.find('select[name^=seats_free_2tables]')
.attr('name', function() { // changing the name
return 'seats_free_2tables[' + randnr + ']';
})
.end() // need to put end to jump to clone
.find('select[name^=seats_free_4tables]')
.attr('name', function() { // changing the name
return 'seats_free_4tables[' + randnr + ']';
})
.end() // need to put end to jump to clone
.find('select[name^=seats_converttables]')
.attr('name', function() { // changing the name
return 'seats_converttables[' + randnr + ']';
})
.end() // go back to clone element
.appendTo("#mytable");
}
});
});
<强> DEMO 强>
答案 2 :(得分:0)
您可以使用数组输入:
<select name="seats_timeclock[]">
通过这种方式,您可以在表单中添加任意数量的输入,并且它们将被浏览器正确打包并发送。
然后,在PHP中,您将拥有$_POST['seats_timeclock'][0]
,$_POST['seats_timeclock'][1]
等等。你可以轻松地遍历那个数组。
foreach($_POST['seats_timeclock'] as $key => $seats_timeclock) {
// the other array posts, will be serialized in the same way,
// so you can access the other fields having the same index
$seats_free_2tables = $_POST['seats_free_2tables'][$key];
$seats_free_4tables = $_POST['seats_free_4tables'][$key];
...
}
答案 3 :(得分:0)
克隆元素后,您可以更改name
属性:
var clone = $("#mytable tr:gt(1):lt(5)").clone();
var min = 1111;
var max = 9999;
var number = Math.round(Math.random() * (max-min)) + min ;
clone.find('select[name^=seats_timeclock]')
.attr('name','seats_timeclock['+number+']');
clone.appendTo("#mytable");
答案 4 :(得分:0)
$(document).ready(function(){
var clonedObj;
$("#antal_tidspunkter").bind("change", function() {
$("#mytable tr:gt(6)").remove();
for (var i = 1; i < this.value; i++) {
clonedObj = $("#mytable tr:gt(1):lt(5)").clone();
$(clonedObj).find('select[name="seats_timeclock[29]"]').attr('name', 'seats_timeclock[' + Math.floor((Math.random()*100000)+1) + ']');
$(clonedObj).appendTo("#mytable");
}
});
});
编辑:支持seats_timeclock
内的变量数字。使用jQuery filter()函数和一个简单的正则表达式。
$(document).ready(function(){
var clonedObj;
$("#antal_tidspunkter").bind("change", function() {
$("#mytable tr:gt(6)").remove();
for (var i = 1; i < this.value; i++) {
clonedObj = $("#mytable tr:gt(1):lt(5)").clone();
$(clonedObj).find('select').filter(function(){
if($(this).attr('name').match(/seats_timeclock/)){
return true;
} else {
return false;
}
}).attr('name', 'seats_timeclock[' + Math.floor((Math.random()*100000)+1) + ']');
$(clonedObj).appendTo("#mytable");
}
});
});