webbrowser Formularz submit

0

Od razu mówię szukałem 2 dni.
Szukam sposobu w delphi żeby po naciśnięciu buttona zatwierdzić formularz o id form2

0

A musi byc koniecznie TWebBrowser? Bo jak strona nie korzysta z JavaScriptu to wystarczy wysłać dane metodą POST używając na przykład pakietu Indy lub Synapse. Co do Synapse to tak jak mogłem opisałem to w tym artykule na: Obsługa protokołu HTTP przy użyciu pakietu Synapse

0
function TForm1.EncodeQuery(const v1, v2, q1, q2: ShortString): string;
begin
  Result:= v1 + '=' + HTTPEncode(q1);
  if (v2 <> '') and (q2 <> '') then
    Result:= Result + '&' + v2 + '=' + HTTPEncode(q2);
end;

procedure TForm1.SendPostDataPerEWB(const EncodedPostData, URL: ShortString);
var
  PostData: OleVariant;
  Headers: OleVariant;
  i: integer;
begin
  PostData := VarArrayCreate([0, length(EncodedPostData)-1], varByte);
  for i := 1 to length(EncodedPostData) do
    PostData[i-1] := ord(EncodedPostData[i]);
  Headers := 'Content-type: application/x-www-form-urlencoded' + #10#13;
  EWB.Navigate(URL, EmptyParam, EmptyParam, PostData, Headers);
end;

Wysyłam dane POST w ten sposób:

SendPostDataPerEWB(EncodeQuery('ver', 'ip', 'get_ver', 'get_ip'), 'http://mojastrona.pl/query.php');

Odpowiednikiem GET byłoby: http://mojastrona.pl/query.php?ver=get_ver&ip=get_ip
query.php odbiera dane po POST, robi z nimi co chce i wypluwa wynik za pomocą zwykłego print czy echo.
W uses HttpApp, Variants.
Korzystam z TEmbeddedWB na bazie TWebBrowser.

1 użytkowników online, w tym zalogowanych: 0, gości: 1