微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

表单 – 使用vba和xmlhttp自动提交网站上的帖子表单

我在excel 2010中通过vba使用xmlhttp.我需要以编程方式将项目添加到网站上的购物车中.到目前为止我有下面的代码,它使用POST方法

我认为我的代码有些错误,但不确定如何修复 – 它没有显示提交表单的位置.这是网址:

http://www.craft-e-corner.com/p-2688-new-testament-cricut-cartridge.aspx

我输入的url作为处理表单的url是“form”中“action =”部分的url.

如何验证表单已发布?

Sub post_frm()
Dim xmlhttp As Object
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
' Indicate that page that will receive the request and the
' type of request being submitted
xmlhttp.Open "POST","http://www.craft-e-corner.com/addtocart.aspx?returnurl=showproduct.aspx%3fProductID%3d2688%26SEName%3dnew-testament-cricut-cartridge",False
' Indicate that the body of the request contains form data
xmlhttp.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
' Send the data as name/value pairs
xmlhttp.send "Quantity=1&VariantID=2705&ProductID=2688"
Set xmlhttp = nothing
End Sub

解决方法

代码没有任何问题. :)我测试了它,它工作正常.错误可能在其他地方.

我只是稍微调整了代码以使用IE来测试输出,它现在工作得很好:)我已经在Excel 2007中测试了它.不久将在2010年进行测试. BTW您使用的是哪个版本的IE?

这是我测试的代码,它工作得很好.

Option Explicit

Sub post_frm()

    Dim objIE As Object,xmlhttp As Object
    Dim response As String

    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.navigate "about:blank"
    objIE.Visible = True

    Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")

    '~~> Indicates that page that will receive the request and the type of request being submitted
    xmlhttp.Open "POST",False
    '~~> Indicate that the body of the request contains form data
    xmlhttp.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
    '~~> Send the data as name/value pairs
    xmlhttp.Send "Quantity=1&VariantID=2705&ProductID=2688"

    response = xmlhttp.responseText
    objIE.document.Write response

    Set xmlhttp = nothing

End Sub

问候

希德

原文地址:https://www.jb51.cc/html/232466.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐