Я использую Гутта, https://github.com/fabpot/goutte, и иметь следующий код,
$client = new Client();
$crawler = $client->request('GET', \Config::get('Eload2::url'));
$form = $crawler->selectButton('Submit')->form();
// add extra fields here
$client->submit($form);
Как мне сделать, чтобы добавить скрытые поля ввода в форму перед отправкой?
Я попробовал следующий код,
$domdocument = new \DOMDocument;
$formfield = new InputFormField ($domdocument->createElement('__EVENTTARGET', 'ctl00$ContentPlaceHolder1$DDLTelco'));
$formfield2 = new InputFormField ($domdocument->createElement('__EVENTARGUMENT',''));
$form->set($formfield);
$form->set($formfield2);
но возвращается следующее сообщение об ошибке,
InputFormField может быть создан только из тега ввода или кнопки (дано __EVENTTARGET).
То, что вы создаете, это:
<__EVENTTARGET>ctl00$ContentPlaceHolder1$DDLTelco</__EVENTTARGET>
<__EVENTARGUMENT />
Пока хочешь:
<input name="__EVENTTARGET" value="ctl00$ContentPlaceHolder1$DDLTelco" />
<input name="__EVENTARGUMENT" value="" />
Попробуй это:
$ff = $domdocument->createElement('input');
$ff->setAttribute('name', '__EVENTTARGET');
$ff->setAttribute('value', 'ctl00$ContentPlaceHolder1$DDLTelco');
$formfield = new InputFormField($ff);
$ff = $domdocument->createElement('input');
$ff->setAttribute('name', '__EVENTTARGET');
$ff->setAttribute('value', '');
$formfield2 = new InputFormField($ff);
Других решений пока нет …