Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
作中有這樣的場景,需要手動(dòng)填寫很多格式一樣的表單,然后點(diǎn)擊提交。如果數(shù)據(jù)在Excel中,一個(gè)個(gè)的copy,重復(fù)性工作太繁瑣。今天就介紹一個(gè)實(shí)現(xiàn)網(wǎng)頁自動(dòng)化的控件--WebBrowser控件。
﹥﹥先給大家看看效果:(自動(dòng)填寫注冊(cè)頁面的表單數(shù)據(jù))
這個(gè)效果稍做改變,加個(gè)循環(huán),就可以實(shí)現(xiàn)批量填入網(wǎng)頁表單數(shù)據(jù),并自動(dòng)提交。(備注:公司內(nèi)部的表單一般是不會(huì)有驗(yàn)證碼的,所以暫時(shí)不用考慮識(shí)別驗(yàn)證碼的工作。)
這就是WebBrowser控件的強(qiáng)大之處。下面就教大家如何實(shí)現(xiàn)上述網(wǎng)頁自動(dòng)化的效果。
﹥﹥何為WebBrower?
WebBrowser 是微軟提供的一個(gè)用于瀏覽網(wǎng)頁的 ActiveX 控件,是植入在程序中一個(gè)控件,網(wǎng)頁顯示在窗體中.可以利用WebBrowser 對(duì)網(wǎng)頁進(jìn)行控制,進(jìn)行一些操作。
在VBA中WebBrowser 控件插入到 VBA 的用戶窗體、一般情況下,VBA 的控件工具箱中找不到該控件,需要在控件工具箱點(diǎn)擊右鍵,在右鍵菜單中選擇“附加控件”,在附加控件對(duì)話框中,找到“Microsoft Web Browser”并且勾選。
控件工具箱中出現(xiàn)一個(gè)地球形狀的控件,這樣就可以把該控件和其他控件一樣,拖放到用戶窗體中使用。
﹥﹥制作方法:
■第一步:拖拽控件到窗體上,添加兩個(gè)按鈕。一個(gè)是打開網(wǎng)頁按鈕,一個(gè)是填入數(shù)據(jù)按鈕、一個(gè)點(diǎn)擊【提交按鈕】的按鈕。(實(shí)際可以合為一個(gè)按鈕,這里只是為了方便演示操作)
■第二步:分析網(wǎng)頁結(jié)構(gòu),找出需要填寫的表單文本框ID,還有提交按鈕的ID。
網(wǎng)頁F12調(diào)出開發(fā)者工具,可以看到,對(duì)應(yīng)于網(wǎng)頁上具體的控件內(nèi)容,都有具體的html代碼。
找到填寫昵稱的代碼段,我們看到,昵稱文本框的ID為"inputName",這就是我們需要的。用相同的方法,找到其他幾個(gè)文本框的ID。
■第三步:雙擊"打開網(wǎng)頁"按鈕,填入以下代碼;
Private Sub CommandButton1_Click() UserForm1.WebBrowser1.Navigate "http://zc.7k7k.com/" UserForm1.WebBrowser1.Silent=True'禁止安全彈窗提醒 End Sub
雙擊"填入數(shù)據(jù)"按鈕,填入以下代碼
Private Sub CommandButton2_Click() With UserForm1.WebBrowser1.Document .getElementById("inputName").Value=Range("a2") .getElementById("inputPwd").Value=Range("b2") .getElementById("inputRePwd").Value=Range("b2") .getElementById("inputRealName").Value=Range("c2") .getElementById("inputCardId").Value=Range("d2") End With End Sub
雙擊"點(diǎn)擊按鈕"按鈕,填入以下代碼:(實(shí)現(xiàn)提交按鈕的點(diǎn)擊)
Private Sub CommandButton3_Click() Set doc=UserForm1.WebBrowser1.Document For i=0 To doc.All.Length - 1 If (LCase(doc.All(i).tagname))="input" Then If (LCase(doc.All(i).Type))="submit" Then Set tg=doc.All(i) tg.Click Exit Sub End If End If Next i End Sub
這只是個(gè)簡單的例子,復(fù)雜的網(wǎng)頁需要具體的分析解決。
我們也可以利用WebBrowser控件提取網(wǎng)頁的數(shù)據(jù),因?yàn)榫W(wǎng)頁都是加載成功后的數(shù)據(jù),所以內(nèi)容基本都能提取成功。
多數(shù)PHP程序都使用HTML表單從用戶那里獲取數(shù)據(jù)并計(jì)算結(jié)果。
首先創(chuàng)造一個(gè)基本的HTML大綱,包含表單控件;然后將控件進(jìn)行合并(HTML表單必須包括一個(gè)提交按鈕,用戶單擊它可以將表單數(shù)據(jù)發(fā)送到服務(wù)器。)一個(gè)單獨(dú)的HTML頁面可以包含多個(gè)表單。
包含表單的HTML結(jié)構(gòu)和和普通的HTML結(jié)構(gòu)一樣。
<HTML>
<HEAD>
<TITLE>標(biāo)題放在這</TITLE>
</HEAD>
<BODY>
表單頁面放在這
</BODY>
</HTML>
在包含表單的HTML頁面中可以使用任何HTML標(biāo)簽。基本的表單使用FROM標(biāo)簽來說明。該標(biāo)簽中METHOD屬性接收GET或POST兩個(gè)值中的一個(gè)。ACTION屬性子明PHP腳本的url,該腳本可以收集通過表單收集的數(shù)據(jù),可以是絕對(duì)路徑或者相對(duì)路徑。
<FORM METHOD="method" ACTION="url">
中間可以放置表單控件
</FORM>
兩個(gè)常用的基本控件:文本框和提交按鈕。
文本框:允許用戶鍵入信息以發(fā)送給PHP腳本。NAME屬性為文本提供名稱,PHP腳本可以通過名稱準(zhǔn)確訪問其內(nèi)容,因此它應(yīng)該是唯一的且符合PHP變量命名規(guī)則(但不需要$符號(hào)),單標(biāo)簽。VALUE屬性指明出現(xiàn)在提交按鈕上面的標(biāo)題。創(chuàng)建方式如下:
<INPUT TYPE="TEXT" NAME="text">
提交按鈕:允許用戶將一個(gè)表單的內(nèi)容發(fā)送到服務(wù)器,一個(gè)HTML表單對(duì)應(yīng)應(yīng)該有一個(gè)提交按鈕。
示例:一個(gè)完整的HTML表單。
<HTML>
<HEAD>
<TITLE>標(biāo)題</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>
可以在一個(gè)HTML頁面中包含多個(gè)表單,注意下一個(gè)表單的FORM開始之前需要結(jié)束前一個(gè)FORM表單。
<HTML>
<HEAD>
<TITLE>標(biāo)題</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屬性用于設(shè)置文本框的可視大小;MAXLENGTH指明用戶鍵入字符的最大長度;VALUE給出了一個(gè)最初顯示在文本框中的值。
<input type="text" name="" size="" maxlength="" value="">
文本區(qū)域可以輸入多行文本。NAME和ROWS屬性是必須的。ROWS屬性表明了文本區(qū)域內(nèi)可以看到的文本行數(shù),充滿時(shí)會(huì)滾動(dòng)。COLS屬性指明可見文本列數(shù)與行數(shù)類似。WRAP屬性指明文本區(qū)域內(nèi)單詞換行的方式,可以指定如下值。該標(biāo)簽為雙標(biāo)簽。
值 | 說明 |
off | 禁止單詞換行但用戶可以輸入換行符強(qiáng)制換行 |
virtual/soft | 各行顯示為換行,但是換行并沒有被發(fā)送到服務(wù)器 |
physica/hard | 啟用了單詞換行 |
<inputarea name="" rows="" cols="" wrap="">
創(chuàng)建密碼框的語法與文本框相同,但要將TYPE屬性指定為PASSWORD而不是TYPE。
<input type="password" name="" size="" maxlength="" value="">
取兩個(gè)值中的一個(gè),即二選一。TYPE屬性是必須的,checked屬性出現(xiàn),該復(fù)選框默認(rèn)情況會(huì)被選定。value屬性指定復(fù)選框被選定情況下被發(fā)送到服務(wù)器的值,默認(rèn)發(fā)送on值。法如下:
<input type="checkbox" name="" checked value="">
語法與復(fù)選框?qū)傩院x相同,但是TYPE屬性的值必須是RADIO,NAME屬性是必須的。
<input type="radio" name="" checked value="">
用戶可以選擇一個(gè)或者多個(gè)選項(xiàng),它是一個(gè)滾動(dòng)菜單。
<select name="" multipile size="">options go here</select>
name屬性是必須的,multipile屬性指明用戶可以通過按下crtl鍵并單擊多個(gè)選項(xiàng)來選擇它們
列表框的單選行為可作為單選按鈕。
<option selected value="text"></options>
<input type="hidden" name="text"value="">
<input type="FILE" name="name" accept="time" value="text">
其中type屬性是必須的。格式通過使用MIME碼指定。常用的格式如下:
超文本標(biāo)記語言文本 .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">
天小編給大家?guī)淼氖莌tml表單提交教程,非常簡單!
話不多說直接進(jìn)入教程
首先要注意的事項(xiàng):
第一:因?yàn)檫@節(jié)課涉及到了php所以本地要安裝php
在這里小編用的是phpStudyphpStudy(特點(diǎn)簡單很適合本地開發(fā)測(cè)試)
phpStudy界面
第二:在php編碼里一定要注意不要編寫錯(cuò)誤
<?php //為開頭 //為結(jié)尾?>
<?php 這里寫php代碼 ?>
要切記php代碼要以分號(hào)未結(jié)束 “;”
首頁我們到我們剛剛安裝的軟件根目錄下,找到www這個(gè)文件夾
雙擊打開建立一個(gè)新文件夾(在這我命名為了表單的拼音你們可以自己命名為你們想命名的名字,切記不能用中文)
在打開剛剛建立好的文件夾創(chuàng)建兩個(gè)文件分別命名為orderform.html和processorder.php(當(dāng)然你也可以自己取名)
我們用編程軟件打開這兩個(gè)新建文件(這里我用的是Sublime Text 3)
我們首先給orderform.html寫下如下代碼
然后我們開始寫建立表單
我們?cè)L問本地連接看一下效果
我們?cè)诮ophp寫入代碼
以下為注意事項(xiàng)
<!--<?php //為php代碼 eoch為輸出代碼 $_POST為接收html提交過來的數(shù)據(jù) $tireqty=$_POST['tireqty']
//$sj=$_POST['sj']
//$dz=$_POST['dz'] 為給建立的變量賦值? echo "$tireqty";為輸出這個(gè)變量-->
首先我們寫入和html一下的html代碼
在寫入php接收函數(shù)
完成效果
以下是html里的代碼
<!DOCTYPE html>
<html>
<head>
<!--這里編碼為utf-8國際編碼-->
<meta charset="utf-8">
<!--這里為網(wǎng)站標(biāo)題-->
<title>表單</title>
</head>
<body>
<!--action為提交的頁面 method為提交類型 分為兩種一種為post還一種為get -->
<form action="processorder.php" method="post">
<!--border="0"為邊框粗細(xì)-->
<table border="0">
<!-- bgcolor="#cccccc"為表格背景顏色這里為灰色 -->
<tr bgcolor="#cccccc">
<td>參數(shù)</td>
<!-- aligan="center"為表格居中 -->
<td align="center">數(shù)據(jù)</td>
</tr>
<tr>
<td>姓名</td>
<!-- <input type="text" name="tireqty" size //這里為type為提交類型
text為文本類型 name為名稱和class一樣 size為字體大小-->
<td align="center"><input type="text" name="tireqty" size="3"/></td>
</tr>
<tr>
<td>手機(jī)</td>
<td align="center"><input type="text" name="sj" size="3"/></td>
</tr>
<tr>
<td>地址</td>
<td align="center"><input type="text" name="dz" size="3"/></td>
</tr>
<tr>
<!-- <input type="text" value="提交" value為input 元素的值 colspan為合并-->
<td colspan="0" align="center"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
</body>
</html>
以下是php中代碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>接收</title>
</head>
<body>
<form>
<?php
$tireqty=$_POST['tireqty'];
$sj=$_POST['sj'];
$dz=$_POST['dz'];
?>
<table border="0">
<tr>
<td>參數(shù)</td>
<td align="center">數(shù)據(jù)</td>
</tr>
<tr>
<td>姓名</td>
<td align="center"><?php echo "$tireqty"; ?></td>
</tr>
<tr>
<td>手機(jī)</td>
<td align="center"><?php echo "$sj"; ?></td>
</tr>
<tr>
<td>地址</td>
<td align="center"><?php echo "$dz"; ?></td>
</tr>
</table>
</form>
</body>
</html>
謝謝觀看,喜歡的就收藏加關(guān)注吧!
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。