我有下面的代碼從一個普通的輸入讀取的值,如何從動態html表讀取輸入值?
HTML:
<tr>
<th>Email:</th>
<td><input id="email" name="email" onchange="EmailValidate()" maxlength="50"></td>
</tr>
PHP:
file_put_contents($file, "\nEMAIL:", FILE_APPEND | LOCK_EX);
$ret = file_put_contents($file, $_POST['email'], FILE_APPEND | LOCK_EX);
以同樣的方式
,我試圖讀取輸入來自動態生成的html表的值,但是出現錯誤,
HTML:
<table>
<tr>
<th>Number of Models:<title="Number of Models"></th>
<td><select id="numbermodels" name="numbermodels" onchange="buildTable(this.value); buildTable4(this.value);">
<option value="1">1</option >
<option value="2">2</option >
<option value="3">3</option >
<option value="4">4</option >
<option value="5">5</option >
<option value="6">6</option >
</select></td>
</tr>
<tr>
<th>Number of heads per model:</th>
<td>
<table id="contentTable" border="1" name="contentTable">
<!-- Fill table programmatically -->
</table></td>
</tr>
的Javascript:
function buildTable(val)
{
var myTable =document.getElementById("contentTable");
var j=val;
var rows = [];
var cells = [];
while (myTable.hasChildNodes()) {
myTable.removeChild(myTable.lastChild);
}
for(var i = 0; i < 1; i++)
{
rows[i] = myTable.insertRow(i);
if(i%3==2)rows[i].addClass("every3rdrow");
cells[i] = [];
for(var x = 0; x < j ; x++)
{
cells[i][x] =document.createElement((x==0)?"th":"td");
cells[i][x].innerHTML = (x==0)?"<input id=t onchange=ty() name=t>":"<input id=t onchange=ty()>";
rows[rows.length - 1].appendChild(cells[i][x]);
}
}
}
buildTable();
function ty(){
$ad = document.getElementById("t").value;
if(!/^-?\d*$/.test($ad)) {
alert("Number of heads per model value must be numeric!");
}
}
這也是我寫了類似的PHP代碼,但我得到的錯誤未定義的索引t, PHP:
file_put_contents($file, "\n Number of Heads per Model:", FILE_APPEND | LOCK_EX);
$ret = file_put_contents($file, $_POST['t'], FILE_APPEND | LOCK_EX);
究竟是什麼原因,可以做什麼修改才能成功讀取動態html表中的輸入值?
有幾件事情:輸入ID的** **必須是唯一的。你不應該爲每個輸入ID使用「t」。同樣,你需要讓't'成爲一個數組。將'name = t'改爲'name = t []''。 –