基于数组长度的 2 列动态 table
Dynamic table with 2 columns based on array length
我有一个动态长度的数组,例如:
(2) [" Corn starch 33.02%", " sugar 22.21%"]
第二次可能尺寸不同
(3) [" Corn starch 33.02%", " sugar 22.21%", " sea salt 20.27% ]"
现在我有 table 可以填充数组中的数据,但前提是数组长度匹配 table 行。
<div class="tab-pane" id="adv">
<div class="section-title">
<div class="row content">
<br /><br />
<div id="elo" class="col-lg-6 pt-6 pt-lg-2">
<div id="stylized" class="myform">
<form id="form" name="form" method="post" action="index.html">
<div class="column" name="details" id="co">
<label>ING name: </label>
<input
type="text"
name="ing1"
id="name1"
class="form-control input-md"
/>
<input
type="text"
name="ing2"
id="name2"
class="form-control input-md"
/>
<input
type="text"
name="ing3"
id="name3"
class="form-control input-md"
/>
<input
type="text"
name="ing4"
id="name4"
class="form-control input-md"
/>
<input
type="text"
name="ing5"
id="name5"
class="form-control input-md"
/>
<input
type="text"
name="ing6"
id="name6"
class="form-control input-md"
/>
<input
type="text"
name="ing7"
id="name7"
class="form-control input-md"
/>
<input
type="text"
name="ing8"
id="name8"
class="form-control input-md"
/>
<input
type="text"
name="ing9"
id="name9"
class="form-control input-md"
/>
<input
type="text"
name="ing10"
id="name10"
class="form-control input-md"
/>
<input
type="text"
name="ing11"
id="name11"
class="form-control input-md"
/>
<input
type="text"
name="ing12"
id="name12"
class="form-control input-md"
/>
<input
type="text"
name="ing13"
id="name13"
class="form-control input-md"
/>
</div>
<div class="column">
<label>Total %: </label>
<input
type="text"
name="value1"
id="value1"
class="form-control input-md"
/>
<input
type="text"
name="value2"
id="value2"
class="form-control input-md"
/>
<input
type="text"
name="value3"
id="value3"
class="form-control input-md"
/>
<input
type="text"
name="value4"
id="value4"
class="form-control input-md"
/>
<input
type="text"
name="value5"
id="value5"
class="form-control input-md"
/>
<input
type="text"
name="value6"
id="value6"
class="form-control input-md"
/>
<input
type="text"
name="value7"
id="value7"
class="form-control input-md"
/>
<input
type="text"
name="value8"
id="value8"
class="form-control input-md"
/>
<input
type="text"
name="value9"
id="value9"
class="form-control input-md"
/>
<input
type="text"
name="value10"
id="value10"
class="form-control input-md"
/>
<input
type="text"
name="value11"
id="value11"
class="form-control input-md"
/>
<input
type="text"
name="value12"
id="value12"
class="form-control input-md"
/>
<input
type="text"
name="value13"
id="value13"
class="form-control input-md"
/>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
现在我可以质疑是否可以根据数组长度构建 table,每个输入都具有动态 ID。
如果我的数组长度为 10,那么我期望的输出是什么,然后创建包含 10 行的 table,我可以在其中填充数组中的数据
如果我对你的问题的理解正确,那么一个简单的 foreach
循环遍历数组并结合一些基本的 HTML 生成就足够了。下面将为数组中的每个项目添加一个新行,其中输入元素命名为 value1
...value100
etc
<form method='post' name='form'>
<table>
<?php
$arr=array(
'Corn starch 33.02%',
'sugar 22.21%',
'sea salt 20.27'
);
foreach( $arr as $i => $item ){
printf('<tr><td><input type="text" name="value%d" value="%s" class="form-control input-md" /></td></tr>',($i+1),$item);
}
?>
</table>
</form>
基本JavaScript:
const data = ['Corn starch 33.02%', 'sugar 22.21%', 'sea salt 20.27'];
// Storing the table element
const tableElement = document.querySelector('#myTable');
// Generated HTML
let generated = '';
// Iterate over the list
for(let i = 0; i < data.length; i++) {
let dat = data[i];
// Generating HTML with data
generated += `
<tr>
<td>
<input
type="text"
name="value${i+1}"
value="${dat}"
class="form-control input-md"
/>
</td>
</tr>`
}
// Appending it to the <table> element
tableElement.innerHTML = generated;
<form method='post' name='form'>
<table id="myTable">
</table>
</form>
这只是一种“简单”的方法,正确的方法是使用更复杂的 DOM。
我有一个动态长度的数组,例如:
(2) [" Corn starch 33.02%", " sugar 22.21%"]
第二次可能尺寸不同
(3) [" Corn starch 33.02%", " sugar 22.21%", " sea salt 20.27% ]"
现在我有 table 可以填充数组中的数据,但前提是数组长度匹配 table 行。
<div class="tab-pane" id="adv">
<div class="section-title">
<div class="row content">
<br /><br />
<div id="elo" class="col-lg-6 pt-6 pt-lg-2">
<div id="stylized" class="myform">
<form id="form" name="form" method="post" action="index.html">
<div class="column" name="details" id="co">
<label>ING name: </label>
<input
type="text"
name="ing1"
id="name1"
class="form-control input-md"
/>
<input
type="text"
name="ing2"
id="name2"
class="form-control input-md"
/>
<input
type="text"
name="ing3"
id="name3"
class="form-control input-md"
/>
<input
type="text"
name="ing4"
id="name4"
class="form-control input-md"
/>
<input
type="text"
name="ing5"
id="name5"
class="form-control input-md"
/>
<input
type="text"
name="ing6"
id="name6"
class="form-control input-md"
/>
<input
type="text"
name="ing7"
id="name7"
class="form-control input-md"
/>
<input
type="text"
name="ing8"
id="name8"
class="form-control input-md"
/>
<input
type="text"
name="ing9"
id="name9"
class="form-control input-md"
/>
<input
type="text"
name="ing10"
id="name10"
class="form-control input-md"
/>
<input
type="text"
name="ing11"
id="name11"
class="form-control input-md"
/>
<input
type="text"
name="ing12"
id="name12"
class="form-control input-md"
/>
<input
type="text"
name="ing13"
id="name13"
class="form-control input-md"
/>
</div>
<div class="column">
<label>Total %: </label>
<input
type="text"
name="value1"
id="value1"
class="form-control input-md"
/>
<input
type="text"
name="value2"
id="value2"
class="form-control input-md"
/>
<input
type="text"
name="value3"
id="value3"
class="form-control input-md"
/>
<input
type="text"
name="value4"
id="value4"
class="form-control input-md"
/>
<input
type="text"
name="value5"
id="value5"
class="form-control input-md"
/>
<input
type="text"
name="value6"
id="value6"
class="form-control input-md"
/>
<input
type="text"
name="value7"
id="value7"
class="form-control input-md"
/>
<input
type="text"
name="value8"
id="value8"
class="form-control input-md"
/>
<input
type="text"
name="value9"
id="value9"
class="form-control input-md"
/>
<input
type="text"
name="value10"
id="value10"
class="form-control input-md"
/>
<input
type="text"
name="value11"
id="value11"
class="form-control input-md"
/>
<input
type="text"
name="value12"
id="value12"
class="form-control input-md"
/>
<input
type="text"
name="value13"
id="value13"
class="form-control input-md"
/>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
现在我可以质疑是否可以根据数组长度构建 table,每个输入都具有动态 ID。
如果我的数组长度为 10,那么我期望的输出是什么,然后创建包含 10 行的 table,我可以在其中填充数组中的数据
如果我对你的问题的理解正确,那么一个简单的 foreach
循环遍历数组并结合一些基本的 HTML 生成就足够了。下面将为数组中的每个项目添加一个新行,其中输入元素命名为 value1
...value100
etc
<form method='post' name='form'>
<table>
<?php
$arr=array(
'Corn starch 33.02%',
'sugar 22.21%',
'sea salt 20.27'
);
foreach( $arr as $i => $item ){
printf('<tr><td><input type="text" name="value%d" value="%s" class="form-control input-md" /></td></tr>',($i+1),$item);
}
?>
</table>
</form>
基本JavaScript:
const data = ['Corn starch 33.02%', 'sugar 22.21%', 'sea salt 20.27'];
// Storing the table element
const tableElement = document.querySelector('#myTable');
// Generated HTML
let generated = '';
// Iterate over the list
for(let i = 0; i < data.length; i++) {
let dat = data[i];
// Generating HTML with data
generated += `
<tr>
<td>
<input
type="text"
name="value${i+1}"
value="${dat}"
class="form-control input-md"
/>
</td>
</tr>`
}
// Appending it to the <table> element
tableElement.innerHTML = generated;
<form method='post' name='form'>
<table id="myTable">
</table>
</form>
这只是一种“简单”的方法,正确的方法是使用更复杂的 DOM。