function modification()
{
alert(document.getElementById("record").value);
var rec=document.getElementById("record").value;
<%
Connection connect = DriverManager.getConnection("jdbc:odbc:DSN","scott","tiger");
Statement stm=connect.createStatement();
String record=""; // I want value of "rec" here.
ResultSet rstmt=stm.executeQuery("select * from "+record);
%>
}
答案 0 :(得分:5)
请记住,示例中的JavaScript在浏览器中的客户端上运行; JSP代码在服务器上运行。要访问服务器上的客户端数据,您必须将其从客户端发送到服务器,您不能像在示例中那样内联访问它。这通常是通过提交表单或执行Ajax request来完成的。
例如,使用Prototype,您的modification
函数可能如下所示:
function modification()
{
var rec=document.getElementById("record").value;
new Ajax.Request("modifyRecord.jsp", {
parameters: {rec: rec},
onFailure: showUpdateFailure
});
}
function showUpdateFailure(response) {
/* ...code here to show that the update failed... */
}
或使用jQuery,它可能如下所示:
function modification()
{
var rec=document.getElementById("record").value;
$.ajax({
url: 'modifyRecord.jsp',
data: {rec: rec},
error: showUpdateFailure
});
}
function showUpdateFailure(xhr, errmsg) {
/* ...code here to show that the update failed... */
}
无论哪种方式,你的modifyRecord.jsp都会收到一个POST参数rec
,它可以用来执行数据库操作(在小心防御SQL injection attacks之后)。