フォームに値を入力送信【パート3】

解決


吉田  2010-02-10 05:40:47  No: 37522

以下のようなプルダウンメニューの値を変更する(挿入する)にはどのようにあすればよいでしょうか?

    <select name="term_simple" onchange="this.form.submit()" style="width:7em" id="UsersTermSimple">
      \n
      <option value="today">今日</option>
      \n
      <option value="thismonth">今月</option>
      \n
      <option value="lastmonth">先月</option>
      \n
    </select>


吉田  2010-02-19 08:02:18  No: 37523

こちらも宜しくお願いします。


あのさ?  2010-02-19 11:37:15  No: 37524

HTMLやJavaScriptのお勉強は他所でやってよ


吉田  2010-02-19 12:49:22  No: 37525

質問の仕方が大変悪かったと気づきました、大変申し訳ありません。

改めて質問させていただきます、
WebBrowserにてHTMLコンテンツを読み込んだあとそのページの
フォームの中にある値を変更してサブミットしたいのです。

サブミットの方法はgoogleの検索をする方法などで
勉強させていただき理解しましたが、上記質問のようなものの
value値を選択したいのですが、方法が見つかりませんでした

アドバイスをよろしくお願いします。


monaa  2010-02-19 19:47:16  No: 37526

色々方法があると思いますが、
今回は<select>タグを探して、Name = 'addr1'のインデックスを0にしました。
MSHTMLをだらだら見れば他にも色々ありそうです。
仕事中なんで補足が必要でしたら、また今晩。

procedure TForm1.Button1Click(Sender: TObject);
var
  HTMLDoc3  :IHTMLDocument3;
  HTMLSelectElement : IHTMLSelectElement;
begin
//WebBrowser1.Navigate('https://sponsor.adwires.com/sponsor.php?mod=accreg&cmd=frm');
  HTMLDoc3:= WebBrowser1.Document as IHTMLDocument3;
  HTMLSelectElement := HTMLDoc3.getElementsBytagName('select').item('addr1',0) as IHTMLSelectElement;
  HTMLSelectElement.selectedIndex := 0;
end;


吉田  2010-02-20 05:05:06  No: 37527

最高です!

あっさり解決してしまいました!!!
みなさんどこを参考にしてしらべられてるのですか?


monaa  2010-02-20 06:41:23  No: 37528

私は「ググる+MSHTML.pas」だけす。
今回の場合ですと、なるべくWebBrowserのインターフェースを使って自動操作ですよね。
となると、この掲示板でも何度か紹介されてます「IHTMLDocument2」ってのが引っかかります。
ですが、今回はこの方法ではうまく行きません。
そこで、MSHTML.pasを見るとIHTMLDocument2と似たようなインターフェースでしかも上位版があります。
とりあえずうまくいかなけりゃバージョンアップということで、IHTMLDocument3を選択。
使い方は関数の名前から容易に想像できると思います。

<select>タブの選択もとりあえず、インターフェースを使って操作するのであれば、
「IHTMLDocument select」で検索。
今回はDelphiに限った話では無いので、VB,c++,JAVAの内容でも構わず一読。
するとIHTMLSelectElementという存在をちらほら目にすると思います。
そこでMSHTML.pasでの実装を確認。selectedIndexというメソッドがあるので、これだろwwwという感じです。

WebBrowser関連は別にDelphiに限った技術ではありません。
言語を指定しないということと、目的技術がIHTMLDocumentインターフェースであることを絞れば色々出てくると思います。

あと、もちろんこういう掲示板で質問してくれれば可能な限り答えるつもりです。
でも今回の質問の仕方だと、HTML?えっ?と読み飛ばします。正直何に困ってるのかすら分かりませんでした。
「フォームに値を入力送信【パート2】」の方は
ソースのコピペだけでは不具合が確認できないので読み流しました。
現にそのコードでしっかり動作するページもありますしね。
少なくとも相手が同じ不具合を再現できなければ試すことすらできませんからね。

質問する多くの方に言いたいのですが、Button1.OnClickから始まるコピペで不具合が再現できるソースを表示するとレスつきやすいですよ。
あっ、私は捨てハンとか言葉遣いも気にします。


だから  2010-02-20 11:04:22  No: 37529

それは全部JavaScriptの関数やメソッドと一緒なの
そっち調べればいいだけ
Delphiの問題じゃない


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加