Два input с одинаковым name

часто задаваемые вопросы по программе
Ответить
grabus
Сообщения: 11
Зарегистрирован: 02 мар 2009, 16:04

Два input с одинаковым name

Сообщение grabus » 16 мар 2009, 07:11

На странице есть два поля input с одинаковым именем.
Надо заполнить оба.
При чем по номеру их определить нельзя, потому как могут быть первым и вторым полем, а могут вторым и третьим.

Как это сделать?

зы когда записываю макрос, он просто дает мне два раза одинаковую строчку типа
$input->set_value_by_name('name','bla-bla');
но при воспроизведении макроса, естественно, он заполняет два раза только первое поле из двух.

neseo
Сообщения: 6
Зарегистрирован: 22 янв 2009, 18:51

Сообщение neseo » 16 мар 2009, 21:46

через цикл for не пробовал?
for (i=0;i<=2;i++)
{
$input->set_value_by_name('name','bla-bla');
sleep(2);
}

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 16 мар 2009, 22:31

neseo писал(а):через цикл for не пробовал?
for (i=0;i<=2;i++)
{
$input->set_value_by_name('name','bla-bla');
sleep(2);
}
это не поможет потому что он будет находить только первый элемент. Если у этих элементов есть id то можно по id делать

вызываем $input->set_value_by_name('сюда id','bla-bla');

grabus
Сообщения: 11
Зарегистрирован: 02 мар 2009, 16:04

Сообщение grabus » 17 мар 2009, 01:47

id который в html указан? его нет.
или id который порядковый номер? он может быть разным, т.е. не угадаешь.

Kostass
Сообщения: 30
Зарегистрирован: 07 фев 2009, 06:51
Контактная информация:

Сообщение Kostass » 17 мар 2009, 13:23

поидее можно перебрать by_number все элементы input на странице
найти те у которых name="blabla" и заполнить set_value_by_number
Я бы изменил алгоритм, но Яша не дает исходники... (с) Krizess

grabus
Сообщения: 11
Зарегистрирован: 02 мар 2009, 16:04

Сообщение grabus » 17 мар 2009, 23:51

Kostass писал(а):поидее можно перебрать by_number все элементы input на странице
найти те у которых name="blabla" и заполнить set_value_by_number
супер, пасип. сработало.

если кому надо, код вывода всех инпутов с номерами:

Код: Выделить всё

$i=0;
while(($name=$input->get_name_by_number($i))!="false")
{
	echo $i." - ".$name."<br>";
	$i++;
}
единственное что меня очень сильно напрягло, это то, что функция возвращает не булевое значение false, а СТРОКУ false!

просьба к разработчикам, если вы уж и делаете возврат false строкой, то хотя бы уточняйте это в хелпе!

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Сообщение igvard » 18 мар 2009, 13:35

единственное что меня очень сильно напрягло, это то, что функция возвращает не булевое значение false, а СТРОКУ false!

просьба к разработчикам, если вы уж и делаете возврат false строкой, то хотя бы уточняйте это в хелпе!
в данном направлении ведутся активные работы и по написанию нормального хэлпа и по исправлению вот таких вот мелких неудобностей.

nikson
Сообщения: 94
Зарегистрирован: 20 янв 2011, 02:36
Контактная информация:

Re: Два input с одинаковым name

Сообщение nikson » 05 янв 2012, 01:58

Аналогичная ситуация, на странице есть два поля input с одинаковым именем, находится только первый элемент и у этих элементов нет id. Удалять атрибут тоже не вариант, так как поля могут быть под разными номерами, на данный момент вижу единственный выход который предложили выше, но не совсем понятно как правильно оформить код, я сделал так:

Код: Выделить всё

$=0;
while(($name=$input->get_name_by_number($i))!="false") {

$i++;
$input->set_value_by_name_by_form_number('login',',bla-bla-bla',$i);
}
Правильный ли такой вариант оформления?
И как сюда добавить еще одно условие, условие количества, чтобы допустим если полей с таким input >1 то только тогда
выполняется вот этот код:

Код: Выделить всё

$=0;
while(($name=$input->get_name_by_number($i))!="false") {

$i++;
$input->set_value_by_name_by_form_number('login',',bla-bla-bla',$i);
}

Ответить