全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2671
推到 Plurk!
推到 Facebook!

請教各位大大 關於網頁表單提交問題

答題得分者是:AndrewK
guyuelang
一般會員


發表:6
回覆:13
積分:3
註冊:2008-12-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-07-14 12:37:37 IP:222.242.xxx.xxx 訂閱
請教各位大大 關於網頁表單提交問題
小弟用delphi做資料庫很久 但用delphi來做網頁到是第一次嘗試 很多不懂 請各位大大指教指教
網頁上的文本框輸入提交 到是找了點資料看了下
比如:
var
doc:ihtmldocument2;
input:olevariant;
user,pwd:ihtmlinputelement;
begin
doc:=webbrowser1.document as ihtmldocument2;
user:=(doc.all.item('username',0) as ihtmlinputelement);
user.value:=edit1.Text;//取文本框的值给网页的用户名文本框
pwd:=(doc.all.item('password',0) as ihtmlinputelement);
pwd.value:=edit2.Text;
input:=doc.all.item('submit',0);
input.click;//单击提交
我就是還有點問題 如果是選擇或單選該怎麼提交呢?
比方說這樣的頁面:

<form name="form1" action="vtest_effect.asp?menu=vtest_vote&testid=99374" method="post"><br />









-------------------------------------------------------
<input type="radio" name="312671" value="value1">GG
<input type="radio" name="312671" value="value2">MM













----------------------------------------------
<input type="checkbox" name="312672*1" value="value1">俠客
<input type="checkbox" name="312672*2" value="value2">商人
<input type="checkbox" name="312672*3" value="value3">農民











<"form1.submit()" 3" >提問1:你是?(單選題)
<input type="radio" name="312671" value="value1">GG
<input type="radio" name="312671" value="value2">MM













----------------------------------------------
<input type="checkbox" name="312672*1" value="value1">俠客
<input type="checkbox" name="312672*2" value="value2">商人
<input type="checkbox" name="312672*3" value="value3">農民



[/code]

就可以If Uppercase(myitem.all.item(i).name)='312672*2' then
對吧 但網頁中的checkbox的name是不同的 怎麼能獲得這個呢 怎麼從在選擇一個呢?

多謝這位兄台的熱心回覆
===================引 用 AndrewK 文 章===================
submit 後,讀取【選擇】或【單選】 裡 id 的值,判斷是否被勾選
編輯記錄
guyuelang 重新編輯於 2009-07-15 13:31:40, 註解 無‧

<"form1.submit()" width="73" height="25" /> [/code]

請教各位高人 萬分感謝~~~~~~~
編輯記錄
guyuelang 重新編輯於 2009-07-14 12:42:11, 註解 無‧
AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-07-15 04:35:48 IP:219.70.xxx.xxx 訂閱
submit 後,讀取【選擇】或【單選】 裡 id 的值,判斷是否被勾選
------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
guyuelang
一般會員


發表:6
回覆:13
積分:3
註冊:2008-12-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-07-15 13:29:52 IP:222.242.xxx.xxx 訂閱
根據這位兄台的意思 我想這麼可以了
for i := 0 to myitem.all.length - 1 do
begin
if myitem.all.item(i).tagName = 'INPUT' then
begin
if Uppercase(myitem.all.item(i).type)='CHECKBOX' then
begin
If Uppercase(myitem.all.item(i).name)='312672*2' then
myitem.all.item(i).checked :=true;
end;
end;
end;
網頁中是這樣的

[code xml]
<input type="checkbox" name="312672*2" value="value2">商人
AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-07-15 17:48:46 IP:219.70.xxx.xxx 訂閱
以 html 語法來說
name 的名稱可以用陣列表示
例:
http://blog.othree.net/log/2007/01/16/checkbox/
等待您的成功文章分享 ^ ^
------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
編輯記錄
AndrewK 重新編輯於 2009-07-15 18:29:20, 註解 無‧
guyuelang
一般會員


發表:6
回覆:13
積分:3
註冊:2008-12-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-07-16 11:56:38 IP:222.242.xxx.xxx 訂閱
多謝多謝 解決了 NAME是可以讀出的 讀出來再刷選就行了

還有個問題想請問下這位兄台
winform中如何实现自动点击webbrowser弹出对话框中的确定按钮呢?

我看到一段C的代碼 但不是delphi的 看不懂

[code cpp]
//using mshtml;
//using SHDocVw;
private void Form1_Load(object sender, EventArgs e)
...{
this.webBrowser1.Navigate("
http://localhost:28512/WebSite2/Default.aspx
");
SHDocVw.WebBrowser wb = this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser;
wb.NavigateComplete2 = new SHDocVw.DWebBrowserEvents2_NavigateComplete2EventHandler(wb_NavigateComplete2);

}

void wb_NavigateComplete2(object pDisp, ref object URL)
...{
mshtml.IHTMLDocument2 doc = (this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).Document as mshtml.IHTMLDocument2;
doc.parentWindow.execScript("function alert(str){return ''}", "javascript");
}

[/code]
這個可以實現自動點擊 但delphi該怎麼做呢?
把WebBrowser1.Slient=false;有用嗎?

這樣代碼出錯 錯到哪裡了呢?
[code delphi]
var
str:string;
begin
str:='button1';
(Self.WebBrowser1.Document as IHTMLDocument3).getElementById(str).click;
end;

[/code]

===================引 用 AndrewK 文 章===================
以 html 語法來說
name 的名稱可以用陣列表示
例:
http://blog.othree.net/log/2007/01/16/checkbox/
等待您的成功文章分享 ^ ^
AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-07-16 18:18:26 IP:219.70.xxx.xxx 訂閱
  在你提供的代碼裡
我沒看到 C語法??
你提供的 html javascript 是完整無誤的 code 嗎???
你可以自己 try try 看,再想想看
如果你要學習類似功能的寫法
可以多多利用網站的搜尋
有一個前輩分享的懶惰鬼帳號密碼登入器
http://delphi.ktop.com.tw/board.php?cid=31&fid=97&tid=95212
你可以參考看看
------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
系統時間:2024-04-24 19:29:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!