Страница 1 из 1
Массив полей, и массив элементов
Добавлено: 17 мар 2009, 11:00
grabus
Хотелось бы, чтобы в xhe был массив элементов.
т.е. например, если на странице несколько input с одинаковым name, то чтоб можно было пройтись массивом по всем элементам и выдернуть все которые нужны.
стандартные функции пока вроде не позволяют вытащить несколько одинаковых объектов. возвращается все время первый.
и вообще, был бы такой массив, было бы удобно.
можно конечно и самому такое написать, но имхо геморно. особенно для каждого проекта отдельно писать.
а если такое будет, и в простом для использования варианте, было бы супер
Добавлено: 16 сен 2009, 21:59
bigfozzy
а можно по подробнее - что за массив и как им управлять ?
Добавлено: 16 ноя 2009, 09:12
qwe
топикстартер, наверное, имел ввиду примерно это:
1. xweb открывает страницу, отрабатывает вся ява и т.д.
2. после этого хорошо бы заполнить пхп-шный массив тем, что есть на странице. (input, buttons, images, radio, check, textarea и т.д.)
к примеру, назовем массив current_page.
Код: Выделить всё
print_r($current_page);
Array
(
[input] => Array
(
[0] => 'value from $input->get_value_by_number(0)'
[1] => '$input->get_value_by_number(1)'
[2] => '$input->get_value_by_number(2)'
[3] => '$input->get_value_by_number(3)'
)
[input_by_name] => Array
(
[0_xweb_login] => 'value from $input->get_value_by_number(0)'
[1_xweb_password] => '$input->get_value_by_number(1)'
[2_xweb_password] => '$input->get_value_by_number(2)'
[3_xweb_login] => 'value from $input->get_value_by_number(3)'
)
[images] => Array
(
[0] => 'value from $image->get_href_by_number(0)'
[1] => '$image->get_href_by_number(1)'
)
)
в данном примере на странице есть два одинаково названных поля login и два поля password.
0_xweb_login, 0 - порядковый номер, _xweb_ - префикс, чтобы потом сплитом отделять порядковый номер от имени поля.
основной смысл этого, чтобы из пхп можно было узнать что есть на открытой странице и как оно называется. ну и для удобства - значения элементов.
кстати, если пойти немного дальше, то хорошо бы, чтобы xweb отдавал таким же образом и другие параметры, например куки.
Добавлено: 07 июл 2010, 16:14
bok2007
Коснулись вопроса полей с одинаковыми названиями. То же столкнулся, так и не понял как их заполнять. К примеру есть 2 одинаковых по именам инпута. При попытке заполнить по имени, заполняется только 1 инпут, который стоит выше, а второй остается пустой, но по идеи должны заполнится оба инпута. Как мне все-таки заполнить оба инпута по имени элемента?
Добавлено: 09 июл 2010, 23:42
Germ
bok2007 писал(а):Коснулись вопроса полей с одинаковыми названиями. То же столкнулся, так и не понял как их заполнять. К примеру есть 2 одинаковых по именам инпута. При попытке заполнить по имени, заполняется только 1 инпут, который стоит выше, а второй остается пустой, но по идеи должны заполнится оба инпута. Как мне все-таки заполнить оба инпута по имени элемента?
Варианты:
использовать другие атрибуты?
$input->set_value_by_number($n,'')?
поставить фокус на ближайший к нему элемент и эмуляцией нажатия TAB добраться до нужного?
Добавлено: 10 июл 2010, 20:26
bok2007
Germ писал(а):bok2007 писал(а):Коснулись вопроса полей с одинаковыми названиями. То же столкнулся, так и не понял как их заполнять. К примеру есть 2 одинаковых по именам инпута. При попытке заполнить по имени, заполняется только 1 инпут, который стоит выше, а второй остается пустой, но по идеи должны заполнится оба инпута. Как мне все-таки заполнить оба инпута по имени элемента?
Варианты:
использовать другие атрибуты?
$input->set_value_by_number($n,'')?
поставить фокус на ближайший к нему элемент и эмуляцией нажатия TAB добраться до нужного?
Обращение по ID элемента не подходит, т.к. он на разных сайтах различный. Может есть еще какие-нибудь варианты?
Добавлено: 16 июл 2010, 09:52
Germ
Вот например цикл по всем $input элементам, который заполняет те, у которых name нужный:
Код: Выделить всё
for($i=0;$i<$input->get_count();$i++){
if($input ->get_name_by_number($i) == "искомое_имя")
$input ->set_value_by_number($i,"необходимая_строка");
}
}
Работоспособность не проверял, но принцип должен быть ясен.