<html>
<head>
<title>提交</title>
</head>
<body>
<FORM action=http://202.104.105.23/post.php method=post name=instant 
      target=_blank>
                    <TEXTAREA class=input2 cols=35 name=content onfocus=this.select() onmouseover=this.focus() rows=4></TEXTAREA>
                    <P> 
                      <SELECT class=input1 name=language>
                        <OPTION selected value=1>生产→销售</OPTION>
                        <OPTION value=3>销售→生产</OPTION>
                      </SELECT>
                      <INPUT name=Submit style="FONT-SIZE: 9pt; HEIGHT: 21px; WIDTH: 72px" type=submit value=提交>        
                    </P>
                  </form>
</body>
</html>网页内容如上
其中有一个text框,一个选择框(有两个内容,一个是生产→销售,另一个是销售→生产)
和一个提交按纽。
在form1上放一个memo,一个combox,一个button,一个webbrowse
webbrowse读取一个html文件,就是上面的内容,这里在memo中输入内容,然后在combox中选择其中的一个,接着按button,这样就会将memo,combox中的内容写到下面的webbrowse里的表单中。
就以上的功能,我试了好久没成功,不知道问题出在那里,我付上代码以便大家研究!procedure TForm1.Button1Click(Sender: TObject);
var
   TargetFrameName,PostData,Flags,Heads:OleVariant;
begin
   PostData:=0;
   Heads:=0;
   Flags:=0;//连接html文件
   WebBrowser1.Navigate(url,Flags,TargetFrameName,PostData,Heads);
   end;procedure TForm1.FormCreate(Sender: TObject);
begin
combox.ItemIndex:=0;
url:='http://202.104.105.23/post.php ';//网站地址
end;procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
i:integer;
doc: OleVariant;
p:integer;
begin
doc:=(sender as TWebBrowser).document;
For i:=0 To doc.all.length-1 do
begin
if (doc.all.item(i).tagName = 'TEXTAREA')and //一定大写
(doc.all.item(i).name='content')then  //大小写与原文一致
doc.all.item(i).value:=memo.Lines.Text;//////////////////这个功能没问题会自动写入
end;
if (doc.all.item(i).tagName = 'SELECT')and //一定大写
(doc.all.item(i).name='language')then
begin/////////////////////////////////////这个就不行了,不知道为什么
p:=combox.ItemIndex+1;//把行号+1给p
if p=1 then//如果p=1就把p付给value
begin
doc.all.item(i).value:=p;
end
else//如果p不等于1就把3付给value,因为上面的网页发送的是1和3
begin
doc.all.item(i).value:=3;
end;
end;
if (doc.all.item(i).tagName = 'INPUT')and //一定大写
(doc.all.item(i).name='Submit')and  //大小写与原文一致
 (doc.all.item(i).value='提交')then
///////////////////////////////////////////这个也不行,不知道怎么回事 
begin
 end;
 end;
另外再问一下,如何使弹出来的新网页还是显示在原来那个webbrowse里面!!!
就是当表单被提交后,经过post.php处理会弹出另外一个网页,我怎么才能让这个弹出来的网页也显示在webbrowse里面???分不够尽管说只要解决问题,我尽量满足大家!!
谢谢

解决方案 »

  1.   

    你是想通过HTTP协议来POST数据到某个PHP页面,你可以用IDHTTP来进行处理;你只要用IDHTTP。POST()就可以搞定;
      

  2.   

    你说的是不是indyserver下面的idhttpserver呀?
      

  3.   

    把html文件中的<FORM action=http://202.104.105.23/post.php method=post name=instant target=_blank>中的target=_blank去掉就可以在同一窗口了。
      

  4.   

    问题已解决谢谢各位,正确的做法应该是加入target=_self