Извлечение данных AJAX Post на классической странице ASP
То, что я делаю, зависит от того, какая ссылка нажата, перестроение URL-адреса и чтение переменных из URL-адреса, чтобы затем выполнить пост-вызов AJAX на классической странице ASP и затем вставить значения поста в базу данных 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, что может быть ошибка? я не знаком с этими постами, извините, если они кажутся очень плачевными.
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, вы используете только имя поля формы, и вам не нужно использовать набор записей, так как в этом контексте вы не получаете данные с помощью запроса select.