Это код именования, что у меня есть:Вызов динамически с именем ввода текста PHP
<?php
for ($i=1; $i<=$housingcount; $i++){
echo '<input onchange="myFunction(value)" size="',11,'" type="text" name="cavqty',$i,'" id="hous',$i,'"/>';}
?>
Где $housingcount
просто количество строк, запрашиваемых из базы данных ($housingcount=mysql_num_rows($result)
).
И туРипсЫоп не очень важно для контекста этого вопроса, потому что это всего лишь простая функция суммирующий, но в любом случае это выглядит следующим образом:
<script>
function myFunction(tBox)
{
var sum=0;
var elts = document.getElementsByTagName('input');
for (var i=0; i<elts.length; i++) {
var elt=elts[i];
if (elt.id && elt.id.indexOf('hous')===0 sum += Number(elt.value);
document.getElementById('sum').innerText=sum;
}
</script>
Так на основе кода PHP число текстовых полей изменения в зависимости от количества корпусов в этом случае. Поэтому текстовые поля называются динамически (cavqty1, cavqty2, cavqty3, ...), в результате чего итерация включена. Теперь этот метод именования вызвал у меня много проблем, потому что я понятия не имею, как вызывать имена текстовых полей, чтобы использовать их для другой функции.
После исследования я подумал, что мне придется вынудить их в массив и просмотреть каждую отдельную строку по одному с помощью инструкции foreach, но это не сработало. Увы, я очень сильно потрясен этой динамичной игрой.
Мой вопрос для вас: как я могу назвать динамически названные текстовые поля, поэтому я могу использовать их в других функциях?
Ваш оператор 'if' неверно закрыт. Если не опечатка – swapnesh
Знаете ли вы, что существует синтаксическая ошибка HTML в свойстве' name'? – Flosculus
в порядке javascript часть этого кода работает отлично, возможно, просто опечатки на этом, потому что меня это действительно не беспокоило из-за того, что здесь это не очень важно. Это было больше введено только для людей, спрашивающих, что такое myFunction: – user2618927