Сохранение номера формы

  • Автор темы Автор темы kyvour
  • Дата начала Дата начала

kyvour

Активный пользователь
Регистрация
17.05.2014
Сообщения
186
Реакции
36
Баллы
28
Вобщем-то предложение следущее. Добавить возможность сохранять номер формы с редактора действий в переменную, чтобы потом использавать этот номер в действиях с элементоами. Часто бывает, что формы разные (отличаются именем или id), но элементы на них есть одинаковые. Поэтому удобно было бы сохранить номер нужной формы и уже работать с полями именно в ней
 
  • Спасибо
Реакции: KirillOFF
Если номер формы всегда одинаковый, используйте его, если нет, ваше предложение не добавляет никакой универсальности.
 
ТС хочет шаманить в рамках одной формы, так как в варианте "-1" будет большой разброс, ТС видит решение задачи таким образом:
- Определяем признак, по которому точно ясно что нам нужна именно эта форма
- Ищем нужный элемент по этому признаку
- Определяем в какой форме находится наш элемент относительно других форм
- Сохраняем порядковый номер нашей формы

Далее получается таким образом ТС имеет возможность уже подставлять ранее найденный порядковый номер формы, и долбить уже в рамках конкретной формы, а не всей страницы (-1).

Лично я много раз сталкивался с необходимостью такой фичи, также как и фичи вложенной работы с формами (нашли один элемент, далее ищем в нём, далее вглубь ниже), и считаю что данная фича весьма полезна. Использование этой фичи могло бы выглядеть так:
- Ищем как и сейчас нужный эллемент
- Делаем GET|form_num
- Также думаю нужен вариант form_doc для получения порядкового номера документа в котором форма находится
 
  • Спасибо
Реакции: bigcajones
Я надеюсь, что это переводится также с англ. Я использовать регулярное выражение, чтобы взять все формы на странице и поставить в список.

Код:
Развернуть Свернуть Копировать
(?<=method="post")[\w\W]*?(?=</form>)|(?<=method="POST">)[\w\W]*(?=</form>)|(?<=<form\ name=.*method="POST")[\w\W]*?(?=</form>)|(?<=<form\ name=.*method="post")[\w\W]*?(?=</form>)

Затем я иду по списку и удалять те формы, которые вы не хотели бы, как Facebook, как кнопки, формы входа, или подписаться формы с регулярным выражением.

Код:
Развернуть Свернуть Копировать
"pluginButtonLabel">Like.*|value="Login"|"lang_dropdown_wrap"|Join Now|name="formulaire"|aweber\.com|icontact\.com|custom_aweber_ad_tracking|switchtheme|straight to your inbox|Get Instant Access|value="Download|We never send spam|Newsletter|id="thankyou_url"|OptimizePress/images/optbuttons/|Make payments with PayPal|Add To Cart|paypalobjects|name="inf_custom_OptInMethod|Give me FREE|value="Give me my|value="Sign Up"|name="Contact0FirstName"|contactsave|value="Get Instant Access"|id="search-block-form"|value="LOG IN"|action="/plugins/like/connect"|value="INSTANT ACCESS"|<input\ value="Search"\ type="submit">.*|http://www\.aweber\.com/scripts/addlead\.pl".*|id="user-login.*|loginform.*|Sign\ in.*|Sign\ up.*|subscribe_form.*|pro-login.*|addmember\.php|commentform.*|comment-form.*|feedburner\.google.*|form-login.*|"search"|"Search"|facebook\.com|Join now|FREE|value="search"|Register for this site|facebook\.com|getresponse\.com|name="subscribe"|listname|www\.eharmony\.com|name="signup"|MailPressFormEmail|clickbank.net|wp-login.php|id="GRSubscribeForm"|Password:|subscriberProfile|name="successUrl"|You can unsubscribe at any|newsletter-signup|google_appliance_search_form|name="double_optin"|Sign Up For Email|signInForm|plugins/like/connect|squeezepage|"lang_dropdown_wrap"|Opt-In|1shoppingcart|id="SignUp"|value="INSTANT ACCESS"|Get Started Now|free video|searchsubmit|Gracias\.htm|value="Lead_Web_Form"|input name="ARThankyouURL"|SubscribeForm|infusionsoft\.com/app/form|sign_up|leadPagesIsValid|Add to Cart|poll|We NEVER trade|id="rememberme"|PAYMENT|Payment| information will never be shared|value="register"|Search|Friends|download|awf_field|Get Instant Access|Subscribe

Если я получаю такую форму, которая не является матч плохой, я поставил Innerhtml тега тела в форму и заполнить его дюйма Таким образом, вы только иметь одну форму на странице и так как вы находитесь на домене, любая представить кнопка будет работать.
 
  • Спасибо
Реакции: kyvour, Lexicon и rostonix
Ах ты Клинт, ах ты хитрец :)
Вполне рабочий вариант )
 
  • Спасибо
Реакции: bigcajones
Зачем делать жизнь трудно. Как только вы поймете, что вы можете управлять веб-страницы он откроет свой мир для всех возможностей.
 
  • Спасибо
Реакции: Lexicon и rostonix
Ну, смотря что считать трудным:) Как по мне, то проще найти форму, скажем, по id и сохранить ее номер в переменную, чем делать пост запрос, потом перебирать список со всеми формами...
 
True, if you are doing Post
 
Если номер формы всегда одинаковый, используйте его, если нет, ваше предложение не добавляет никакой универсальности.

Наведу конкретный пример. Делаю регистрацию на одном движке. Перехожу на страницу на которой есть 2 формы - для авторизации и для регистрации. Мне нужно заполнять поля только во второй. Все бы ничего, но бывают обязательные поля, которые идентичны полям на форме авторизации (логин и пароль). Выходит что эти поля надо заполнять в обеих формах (так как мы не знаем конкретно номер формы регистрации), если форм 3 - то и на 3-х формах, чтобы точно быть уверенным, что заполнятся поля у форме регистрации. В результате нарастает штук 5 блоков с логином и штук 5 с паролем.
Если же мы сможем сохранять номер формы в переменную, то всё становится намного проще. Ищем форму по id, сохраняем в переменную и потом используем ее при заполнении полей.
 
выше вам Клинт написал трюк, чем не подходит?
 
Трюк подходит:) Но хотелось бы удобства. Мне сейчас проще накидать лишних блоков, выпарсивать все формы. Хотя это может быть дело времени - нужно 1 раз сесть и написать.
В любом случае фича полезная была бы.
 
Я надеюсь, что это переводится также с англ. Я использовать регулярное выражение, чтобы взять все формы на странице и поставить в список.

Код:
Развернуть Свернуть Копировать
(?<=method="post")[\w\W]*?(?=</form>)|(?<=method="POST">)[\w\W]*(?=</form>)|(?<=<form\ name=.*method="POST")[\w\W]*?(?=</form>)|(?<=<form\ name=.*method="post")[\w\W]*?(?=</form>)

Затем я иду по списку и удалять те формы, которые вы не хотели бы, как Facebook, как кнопки, формы входа, или подписаться формы с регулярным выражением.

Код:
Развернуть Свернуть Копировать
"pluginButtonLabel">Like.*|value="Login"|"lang_dropdown_wrap"|Join Now|name="formulaire"|aweber\.com|icontact\.com|custom_aweber_ad_tracking|switchtheme|straight to your inbox|Get Instant Access|value="Download|We never send spam|Newsletter|id="thankyou_url"|OptimizePress/images/optbuttons/|Make payments with PayPal|Add To Cart|paypalobjects|name="inf_custom_OptInMethod|Give me FREE|value="Give me my|value="Sign Up"|name="Contact0FirstName"|contactsave|value="Get Instant Access"|id="search-block-form"|value="LOG IN"|action="/plugins/like/connect"|value="INSTANT ACCESS"|<input\ value="Search"\ type="submit">.*|http://www\.aweber\.com/scripts/addlead\.pl".*|id="user-login.*|loginform.*|Sign\ in.*|Sign\ up.*|subscribe_form.*|pro-login.*|addmember\.php|commentform.*|comment-form.*|feedburner\.google.*|form-login.*|"search"|"Search"|facebook\.com|Join now|FREE|value="search"|Register for this site|facebook\.com|getresponse\.com|name="subscribe"|listname|www\.eharmony\.com|name="signup"|MailPressFormEmail|clickbank.net|wp-login.php|id="GRSubscribeForm"|Password:|subscriberProfile|name="successUrl"|You can unsubscribe at any|newsletter-signup|google_appliance_search_form|name="double_optin"|Sign Up For Email|signInForm|plugins/like/connect|squeezepage|"lang_dropdown_wrap"|Opt-In|1shoppingcart|id="SignUp"|value="INSTANT ACCESS"|Get Started Now|free video|searchsubmit|Gracias\.htm|value="Lead_Web_Form"|input name="ARThankyouURL"|SubscribeForm|infusionsoft\.com/app/form|sign_up|leadPagesIsValid|Add to Cart|poll|We NEVER trade|id="rememberme"|PAYMENT|Payment| information will never be shared|value="register"|Search|Friends|download|awf_field|Get Instant Access|Subscribe

Если я получаю такую форму, которая не является матч плохой, я поставил Innerhtml тега тела в форму и заполнить его дюйма Таким образом, вы только иметь одну форму на странице и так как вы находитесь на домене, любая представить кнопка будет работать.

I'm tried your method and I want to say that it's excellent!! :bp:
I search my form with some id in a page source and then replace a page's body with html of this form

So, my regexp is the next
Код:
Развернуть Свернуть Копировать
<form.*(form_auth|forum_auth)[\w\W]*?</form>
This is a simple regex, but I wrote it about one hour :D

P.S. Sorry for my bad English:ah:
 
Рад, что смог помочь
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)