Я пытаюсь создать страницу, на которой пользователи могут добавить столько строк в таблицу, сколько захотят, а затем значения входов (есть вход в каждой ячейке таблицы): вернулся на страницу.Динамически сгенерированное имя ввода в JavaScript
Моя проблема возникает при попытке сделать имя каждого динамически созданного поля ввода другим. Я попытался создать переменную, чтобы сделать это, но синтаксис, который я использую, который работает в других местах, кажется, не работает при создании новых элементов.
Вот код в вопросе:
if ($_POST['dept_1'] != null){ //If there was an input
$i = intval($_POST['num_of_rows']);
while ($i != 0){
$dept = $_POST['dept_' . $i];
$hours = $_POST['hours_' . $i];
echo $dept . " " . $hours . "\n";
$i--;
}
}
.....
var i = 2;
$("document").ready(function(){
$("#newrow").click(function(e){
$("#maintable").append('<tr> \
<td><input type="text" name="dept_" + i size="5" maxlength="5" /></td> \
<td><input type="text" name="hours_" + i size="5" maxlength="1" /></td> \
</tr>');
alert("dept_" + i);
e.preventDefault();
$("#hiddenvalue").attr("value", "" + i + "");
i = i + 1;
});
});
$ POST [ 'отдел'. $ i] работает, когда $ i = 1, потому что dept_1 записывается в HTML страницы.
alert ("dept_" + i) работает, соединяя значение i со строкой.
name = "dept_" + i не работает. Проверяя новый элемент, его имя «dept_ + i»
Почему это происходит, и как я могу его исправить?
Спасибо за меня учить что-то новый. Мне действительно интересно узнать ответ на мой вопрос, хотя, потому что я пытался делать подобные вещи в другое время и не работал. –
@AndrewLatham У вас есть все это в ответе ThiefMaster. – iambriansreed