РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1177 of 1361 menu

Метод getValues класса CrawlerForm

Метод getValues класса CrawlerForm возвращает ассоциативный массив, содержащий значения всех полей формы. Ключами массива выступают имена полей, а значениями - текущие значения этих полей. Метод не принимает параметров и возвращает массив.

Метод удобен, когда нужно получить все данные формы сразу, например, для дальнейшей отправки или проверки. Значения извлекаются из полей ввода, которые были найдены краулером на странице.

Синтаксис

$form->getValues();

Пример

Давайте создадим краулер, найдём форму и получим значения всех её полей:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\DomCrawler\Crawler; class ArticleController extends AbstractController { public function index(): Response { $html = ' <form> <input type="text" name="login" value="user"> <input type="text" name="email" value="abcde"> </form> '; $crawler = new Crawler($html); $form = $crawler->filter('form')->form(); $res = $form->getValues(); return new Response(json_encode($res)); } } ?>

Результат выполнения кода:

{"login": "user", "email": "abcde"}

Пример

Давайте изменим значение поля через метод set, а затем получим обновлённые значения всех полей:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\DomCrawler\Crawler; class ArticleController extends AbstractController { public function index(): Response { $html = ' <form> <input type="text" name="login" value="user"> <input type="text" name="email" value="abcde"> </form> '; $crawler = new Crawler($html); $form = $crawler->filter('form')->form(); $form->set('login', 'hello'); $res = $form->getValues(); return new Response(json_encode($res)); } } ?>

Результат выполнения кода:

{"login": "hello", "email": "abcde"}

Пример

Давайте получим значения полей формы, содержащей чекбокс и поле выбора:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\DomCrawler\Crawler; class ArticleController extends AbstractController { public function index(): Response { $html = ' <form> <input type="text" name="name" value="article"> <input type="checkbox" name="active" value="1" checked> <select name="role"> <option value="admin">Admin</option> <option value="user" selected>User</option> </select> </form> '; $crawler = new Crawler($html); $form = $crawler->filter('form')->form(); $res = $form->getValues(); return new Response(json_encode($res)); } } ?>

Результат выполнения кода:

{"name": "article", "active": "1", "role": "user"}

Смотрите также

  • класс CrawlerForm,
    который представляет форму на странице
  • метод get,
    который возвращает значение одного поля формы
  • метод set,
    который устанавливает значение поля формы
  • метод getPhpValues,
    который возвращает значения полей в формате PHP
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить