その目的はform[id=thisAwesomeRemoteForm][action=#]
、リモート Web サイトにデータを入力することです。入力するフィールド ( ) は 1 つだけinput[name=awesomeField]
で、フォームを送信する必要があります。最終的な要件として、リモート Web サイトでフォームを送信したかのように、ユーザーを私の Web サイトからこのリモート Web サイトにリダイレクトする必要があります。
簡単に言えば、ユーザーが私のリンクをクリックし、PHP にジョブを実行させ、リモート Web サイトでフォームに入力して送信したかのように、このリモート Web サイトにリダイレクトできるようにする必要があります。ユーザーが自分でリモートフォームに入力する必要はありません。
これまでのコードは次のとおりです。
use Goutte\Client;
// ...
public function gotoAction($data)
{
$client = new Client();
$crawler = $client->request('GET', self::MY_URL);
$form = $crawler->filter('form[id=thisAwesomeRemoteForm]')->form();
$form->setValues(array('awesomeField' => $data));
$crawler = $client->submit($form);
return $this->redirect($form->getUri());
}
これまでのところ、がつながるはずform
の場所ではなく、 が存在する最初の URL にリダイレクトされます。form
ただし、フィールドには適切なデータが入力されています。
私のコードは私の目的を達成するのに正しいですか (したがって、JavaScript を使用してフォームなどを送信するのはリモート Web サイトです)、それともかなり明らかな何かが欠けていますか?