1

我所做的是取决于单击的链接,重新构建 URL 并从 URL 中读取变量,然后对经典 ASP 页面进行 AJAX 发布调用,然后将发布值插入 SQL 数据库。

这是在 document.ready() 函数中,因此当 URL 发生更改时,它将读取新值;

        //check if there's a video to log, and log that video
    var params = {};
    params["loggedFrom"] = getUrlVars()["loggedFrom"];
    params["logVideo"] = getUrlVars()["logVideo"];
    params["ipAddress"] = getUrlVars()["IPAddress"];
    params["fromApp"] = "P360";
    params["fromPage"] = "P360 Trading Overview";
    params["videoName"] = getUrlVars()["videoName"];
    //alert(params["loggedFrom"]);
    if(params["logVideo"]   == "true"){
        var now = new Date();
        now = now.format("MM/dd/yyyy hh:mm:ss");

        $.ajax({
            type:"POST",
            url:"p360TradingLog.asp",
            data: params,
            success : function(d){
                alert("this post was successful");              
            }
        });
    }

params[] 似乎在执行

alert(params["logVideo"]);

它返回正确的值,但我没有收到“这篇文章成功”警报。我的问题是我的代码应该在 p360TradingLog.asp 页面中以获取这些发布的值并正确插入它们?这是我当前的代码,但无法正常工作。

<%
        Set con = Server.CreateObject("ADODB.Connection");
        set ipAddress = Request.Form("params")("ipAddress");
        set videoName = Request.Form("params")("videoName");
        set fromPage = Request.Form("params")("fromPage");
        set fromApp = Request.Form("params")("fromApp");
        set loggedFrom = Request.Form("params")("loggedFrom");
        set timeOfDay = Now;
        var conStr = "Provider=SQLOLEDB.1;Password=xxxxxx;Persist Security Info=True;User ID=xxxxx;Initial Catalog=xxxxx;Data Source=xxxxx";
        con.Open(conStr);
        Set rs = con.Execute("Insert into dbo.tbl_Prospect_Video_Tracking(IPAddress,videoName,fromPage,fromApp,loggedFrom,dtViewed)values('" + ipAddress + "','" + videoName + "','" + fromPage + "','" + fromApp + "','" + loggedFrom + "','" + timeOfDay + "')");
        //alert(insertSQL); 
        rs.close();         
        con.close();
%>

有没有办法让我在 P360TradingLog.asp 页面上测试可能出现的错误?我不熟悉这些帖子,如果这些看起来很蹩脚,我很抱歉。

4

1 回答 1

1
    <%
    dim con, ipaddress, videoname, frompage, fromapp, loggedfrom, timeofday, constr, sqlstr

    Set con = Server.CreateObject("ADODB.Connection")
    ipAddress = Request.Form("ipAddress")
    videoName = Request.Form("videoName")
    fromPage = Request.Form("fromPage")
    fromApp = Request.Form("fromApp")
    loggedFrom = Request.Form("loggedFrom")
    timeOfDay = Now

    conStr = "Provider=SQLOLEDB.1;Password=xxxxxxx;Persist Security Info=True;User ID=clink;Initial Catalog=xxxxx;Data Source=xxxxx"
    con.Open conStr
    sqlstr = "Insert into dbo.tbl_Prospect_Video_Tracking(IPAddress,videoName,fromPage,fromApp,loggedFrom,dtViewed)values('" & ipAddress & "','" & videoName & "','" & fromPage & "','" & fromApp & "','" & loggedFrom & "','" & timeOfDay & "')"
    con.Execute(sqlstr)


    con.close
    %>

首先,您似乎使用 Javascript 作为您的服务器端脚本语言,这是完全有效的,但是我在这里将其更改为 VBScript,因为我对语法更加熟悉。

您正在使用“set”声明字符串变量,这看起来是错误的。当您使用 request.form 时,您只使用表单字段的名称,并且您不需要使用记录集,因为在这种情况下您不会使用选择查询检索数据

于 2014-03-19T15:48:10.563 回答