TML:完成頁面的內容展示
CSS:完成頁面樣式的控制,美化頁面,完成頁面的布局。
表單:用于采集用戶輸入的數據。用于和服務器進行交互。
form:用于定義表單的。可以定義一個范圍(代表用戶采集數據的范圍)
屬性:action:指定提交數據的url(指的就是把數據提交到哪里)
method:指定提交方式
分類:一共有7種,2種比較常用。
get:1.請求參數會在地址欄顯示
2.請求參數的長度是有限制的。
3.請求不安全
post:1.請求參數不會在地址欄顯示,會封裝在請求體中。
2.請求參數的長度沒有限制
3.較為安全
表單里面的數據要想被提交,必須指定它的name屬性
表單項標簽
input:可以通過type屬性值,改變元素展示的樣式。
type屬性:text:文本輸入框,默認值
placeholder:指定輸入框的提示信息,當輸入框的內容發生變化,會自動情況提示信息。
password:密碼輸入框
radio:1.單選框(要想讓多個單選框實現單選的效果,則多個單選框的name屬性值必須一樣)
2.一般會給每一個單選框提供value屬性,指定其被選中后提交的值。
3.checked屬性可以指定默認值
checkbox:復選框:
1.一般會給每一個單選框提供value屬性,指定其被選中后提交的值。
2.checked屬性可以指定默認值
file:文件選擇框
hidden:隱藏域,用于提交一些信息
按鈕:
submit:提交按鈕。可以提交表單
button:普通按鈕
image:圖片提交按鈕
src屬性指定圖片的路徑
label:指定輸入項的文字描述信息
注意:lable的for屬性一般會和input的id屬性值對應。如果對應了,點擊lable區域,會讓input輸入框獲取焦點。
select:下拉列表
子元素:option,指定列表項
textarea:文本域
多數PHP程序都使用HTML表單從用戶那里獲取數據并計算結果。
首先創造一個基本的HTML大綱,包含表單控件;然后將控件進行合并(HTML表單必須包括一個提交按鈕,用戶單擊它可以將表單數據發送到服務器。)一個單獨的HTML頁面可以包含多個表單。
包含表單的HTML結構和和普通的HTML結構一樣。
<HTML>
<HEAD>
<TITLE>標題放在這</TITLE>
</HEAD>
<BODY>
表單頁面放在這
</BODY>
</HTML>
在包含表單的HTML頁面中可以使用任何HTML標簽。基本的表單使用FROM標簽來說明。該標簽中METHOD屬性接收GET或POST兩個值中的一個。ACTION屬性子明PHP腳本的url,該腳本可以收集通過表單收集的數據,可以是絕對路徑或者相對路徑。
<FORM METHOD="method" ACTION="url">
中間可以放置表單控件
</FORM>
兩個常用的基本控件:文本框和提交按鈕。
文本框:允許用戶鍵入信息以發送給PHP腳本。NAME屬性為文本提供名稱,PHP腳本可以通過名稱準確訪問其內容,因此它應該是唯一的且符合PHP變量命名規則(但不需要$符號),單標簽。VALUE屬性指明出現在提交按鈕上面的標題。創建方式如下:
<INPUT TYPE = "TEXT" NAME="text">
提交按鈕:允許用戶將一個表單的內容發送到服務器,一個HTML表單對應應該有一個提交按鈕。
示例:一個完整的HTML表單。
<HTML>
<HEAD>
<TITLE>標題</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data">
</FORM>
</BODY>
</HTML>
可以在一個HTML頁面中包含多個表單,注意下一個表單的FORM開始之前需要結束前一個FORM表單。
<HTML>
<HEAD>
<TITLE>標題</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data">
<BR/>
<BR/>
</FORM>
<FORM METHOD="POST" NAME="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name1">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email1">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data1">
</FORM>
</BODY>
</HTML>
文本框的屬性中,TYPE和NAME是必須的,其余是可選屬性。SIZE屬性用于設置文本框的可視大小;MAXLENGTH指明用戶鍵入字符的最大長度;VALUE給出了一個最初顯示在文本框中的值。
<input type="text" name="" size="" maxlength="" value="">
文本區域可以輸入多行文本。NAME和ROWS屬性是必須的。ROWS屬性表明了文本區域內可以看到的文本行數,充滿時會滾動。COLS屬性指明可見文本列數與行數類似。WRAP屬性指明文本區域內單詞換行的方式,可以指定如下值。該標簽為雙標簽。
值 | 說明 |
off | 禁止單詞換行但用戶可以輸入換行符強制換行 |
virtual/soft | 各行顯示為換行,但是換行并沒有被發送到服務器 |
physica/hard | 啟用了單詞換行 |
<inputarea name="" rows="" cols="" wrap="">
創建密碼框的語法與文本框相同,但要將TYPE屬性指定為PASSWORD而不是TYPE。
<input type="password" name="" size="" maxlength="" value="">
取兩個值中的一個,即二選一。TYPE屬性是必須的,checked屬性出現,該復選框默認情況會被選定。value屬性指定復選框被選定情況下被發送到服務器的值,默認發送on值。法如下:
<input type="checkbox" name="" checked value="">
語法與復選框屬性含義相同,但是TYPE屬性的值必須是RADIO,NAME屬性是必須的。
<input type="radio" name="" checked value="">
用戶可以選擇一個或者多個選項,它是一個滾動菜單。
<select name="" multipile size="">options go here</select>
name屬性是必須的,multipile屬性指明用戶可以通過按下crtl鍵并單擊多個選項來選擇它們
列表框的單選行為可作為單選按鈕。
<option selected value="text"></options>
<input type="hidden" name="text"value="">
<input type="FILE" name="name" accept="time" value="text">
其中type屬性是必須的。格式通過使用MIME碼指定。常用的格式如下:
超文本標記語言文本 .html,.html text/html
普通文本 :txt text/plain
word文檔:application/msword
RTF文本 :rtf application/rtf
GIF圖形 :gif image/gif
JPEG圖形 :jpeg,
jpg: image/jpeg
au聲音文件:au audio/basic
MIDI音樂文件 :mid,.midi audio/midi,audio/x-midi
RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
壓縮文件.rar application/octet-stream
壓縮文件.zip application/x-zip-compressed
TAR文件 .tar application/x-tar
<input type="image" src="url" name="text" align="align">
<input type="reset" value="text">
分享成果,隨喜正能量】修學務早,及其精專,習與性成,不異自然也。值得我們用一生去學習的,就是學習什么該做,什么不該做,在自己心中畫個圈,干了出圈的事情,傷害的是自己。。
《VBA信息獲取與處理》教程是我推出第六套教程,目前已經是第一版修訂了。這套教程定位于最高級,是學完初級,中級后的教程。這部教程給大家講解的內容有:跨應用程序信息獲得、隨機信息的利用、電子郵件的發送、VBA互聯網數據抓取、VBA延時操作,剪貼板應用、Split函數擴展、工作表信息與其他應用交互,FSO對象的利用、工作表及文件夾信息的獲取、圖形信息的獲取以及定制工作表信息函數等等內容。程序文件通過32位和64位兩種OFFICE系統測試。是非常抽象的,更具研究的價值。
教程共兩冊,八十四講。今日的內容是專題八“VBA與HTML文檔”:表單對象的提交與反饋
HTML DOM 允許 JavaScript(腳本語言) 對 HTML 事件作出反應,當事件發生時,如當用戶點擊一個 HTML 元素時,可以執行 JavaScript。一般來講這些事件包括:
用戶點擊鼠標時;網頁已加載;圖片已加載;鼠標移動到元素上;輸入字段被改變;HTML 表單被提交;用戶觸發按鍵
在我的第五套教程《VBA中類的解讀及應用》中我非常系統的講解了事件的含義,事件主要是對象的響應,我們這節就幾個實例給出幾個對象的常用響應有的是事件本身,有的是相關的操作。
表單form對象,有一個方法比較重要,就是submit,這個方法提供了表單的提交的動作。如果我們捕捉頁面的提交按鈕非常困難時,有時候只要對表單,執行submit方法,表單也是可以提交的,不需去點擊提交按鈕。
表單控件,是文本輸入類控件,最常用就是value的屬性了,通過這個屬性,可以往文本框里面添加文本。
單選框、復選框,常用的是checked屬性,如果為true就是被選中了,或者直接使用click方法也行。
下拉列表,如果是單選列表框,可通過selectedIndex屬性去設置選中項(下拉選項,從1開始編號,如2就是選擇下拉列表的第二個選項),也可以通過value屬性,直接把value指定為要選定的option的value即可,但多選列表框不可用這兩個屬性。另外,所有類別的列表框,都可以通過其內含對象集合options(),設置某個options(x)的selected屬性為true,來設置選中項。
還是以百度首頁為示例,我們用程序模擬鍵入查詢數據“VBA代碼解決方案”,然后提交查詢,在網頁中看看查詢的結果:
Sub MYNZB() '在百度首頁,提交表單
Dim ie, dmt, fm
Set ie = CreateObject("InternetExplorer.Application") '創建一個IE對象
With ie
.Visible = True '顯示它
.navigate "http://www.baidu.com" '加載某個頁面
Do Until .ReadyState = 4 '等待頁面加載完畢
DoEvents
Loop
Set dmt = .document '將IE瀏覽器加載的頁面文檔,賦予dmt變量
Set fm = dmt.forms("f") '用表單的名稱f,捕捉表單對象
dmt.all("kw").Value = "VBA代碼解決方案" '用搜索欄的id"kw"捕捉它,并鍵入VBA代碼解決方案
dmt.all.tags("input")(3).Click '用"百度一下"按鈕的input索引號捕捉它,并模擬按鈕的點擊
'fm.submit '模擬表單的提交,不一定要click
End With
End Sub
代碼截圖:
網頁返回的結果:
表格對象,也是我們提取網頁數據,最常打交道的對象了。其內含rows對象集合,可以使我們訪問表格內的每行,每個row對象還內含cells對象集合,使我們可以訪問其每行的每個單元格,讀取每個單元格的innertext屬性即可獲取我們所需每個單元格的文本。
另外,常用的屬性還有length,這個類似我們VBA里面的count,都是返回某個對象的數量。
如下面代碼是提取實時股票漲跌的代碼:
Sub MYNZC()
Sheets("Sheet1").Select
Cells.Clear
Dim ie, dmt, tb, i&, j&
Set ie = CreateObject("InternetExplorer.Application") '創建一個IE對象
With ie
'.Visible = True '顯示它
.navigate "http://vip.stock.finance.sina.com.cn/mkt/#hqIndex" '加載某個頁面
Do Until .ReadyState = 4 '等待頁面加載完畢
DoEvents
Loop
Set dmt = .document '將IE瀏覽器加載的頁面文檔,賦予dmt變量
Set tb = dmt.all.tags("table")(4) '通過索引號捕捉表格對象
For i = 0 To tb.Rows.Length - 1 '歷遍其每個行
For j = 0 To tb.Rows(i).Cells.Length - 1 '歷遍每行的每個單元格
Cells(i + 1, j + 1) = tb.Rows(i).Cells(j).innertext '將其innertext寫入單元格
Next
Next
End With
End Sub
代碼截圖:
返回的結果:
為了提取網頁中的圖片,我們需要這個圖片的鏈接,我們看看下面的代碼:
Sub MYNZD()
Dim ie, dmt
Set ie = CreateObject("InternetExplorer.Application") '創建一個IE對象
With ie
.Visible = True '顯示它
.navigate "https://baijiahao.baidu.com/s?id=1633425158454774294" '加載某個頁面
Do Until .ReadyState = 4 '等待頁面加載完畢
DoEvents
Loop
Set dmt = .document '將IE瀏覽器加載的頁面文檔,賦予dmt變量
Debug.Print dmt.images(1).src '讀取圖片的URL
End With
End Sub
代碼截圖:
文檔中 <a> 標簽每出現一次,就會創建 Anchor 對象。這個就沒啥好示例的了,href屬性返回被鏈接的URL,click可以模擬超鏈接被點擊了。
這節涉及到的內容較多,希望大家在 的基礎上修正代碼加以使用。
本節知識點回向:
如何提交表單?如何下載圖片的地址?如何獲得表的數據?
本節參考文件:008工作表.xlsm
我20多年的VBA實踐經驗,全部濃縮在下面的各個教程中,教程學習順序:
【分享成果,隨喜正能量】在外的好脾氣,是為人的圓滑,讓你收獲好人緣;在家的好脾氣,是最貴的修養,讓你你收獲最好的幸福!。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。