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

解決


吉田  2010-02-09 20:40:47  No: 37522  IP: 192.*.*.*

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

    <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-18 23:02:18  No: 37523  IP: 192.*.*.*

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

編集 削除
あのさ?  2010-02-19 02:37:15  No: 37524  IP: 192.*.*.*

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

編集 削除
吉田  2010-02-19 03:49:22  No: 37525  IP: 192.*.*.*

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

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

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

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

編集 削除
monaa  2010-02-19 10:47:16  No: 37526  IP: 192.*.*.*

色々方法があると思いますが、
今回は<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-19 20:05:06  No: 37527  IP: 192.*.*.*

最高です!

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

編集 削除
monaa  2010-02-19 21:41:23  No: 37528  IP: 192.*.*.*

私は「ググる+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 02:04:22  No: 37529  IP: 192.*.*.*

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

編集 削除