Das hängt davon ab, wie das Formular anfänglich ausgefüllt wird.
Wenn die vorausgefüllten Elemente alle value="foo"
dann einfach die Seite abrufen (mit curl), sie in ein DOMDocument laden, die <form>
die Sie benötigen, und füllen Sie das/die benötigte(n) Feld(er) aus, dann leiten Sie es als eine weitere Anfrage unter Verwendung einer neuen cURL-Anfrage weiter (unter Berücksichtigung des Formulars action
y method
Attribute, sowie Formulardaten, die gesendet werden).
Allerdings, wenn sie mit JS befüllt werden und Sie nicht planen, die cURL-Anfrage zu schreiben, um zu imitieren, was Sie auf Ihrem Browser tun, sehe ich nicht eine einfache Möglichkeit, JS-Aktionen zu imitieren, dann befüllen, dann senden Sie es aus.
Außerdem werden dabei eventuell vorhandene Cookies nicht berücksichtigt. Wenn Sie diese benötigen, müssen Sie sie von der ersten Anfrage an speichern und sicherstellen, dass sie mit dem eigentlichen Übermittlungsaufruf verschickt werden.