Страница 1 из 1

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

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

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

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

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

Добавлено: 16 мар 2009, 22:31
igvard
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');

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

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

Добавлено: 17 мар 2009, 23:51
grabus
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 строкой, то хотя бы уточняйте это в хелпе!

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

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

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

Добавлено: 05 янв 2012, 01:58
nikson
Аналогичная ситуация, на странице есть два поля 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);
}