2012-12-05 31 views
3

问题是代码工作时rs.getString (1)是整数,但在我的情况下,它是一个varchar主键,如何解决此问题。jsp甲骨文与JavaScript函数

function getId(id){ 
    var f=document.form; 
    f.method="post"; 
    f.action='SelectBank1.jsp?id='+id; 
    f.submit(); 
} 

<% 
Statement stmt = conn.createStatement(); 
    ResultSet rs = stmt.executeQuery("select IdwhichIsVarchar, description from SomeDataBase where IS_VISIBLE = 1 order by description "); 
%> 

<% 
while(rs.next()){ 
%> 
<tr><td><%=rs.getString(2)%></td> 

<td><input type="button" name="edit" value="Edit" style="background-color:green;font-weight:bold;color:white;" onclick="getId(<%=rs.getString(1)%>);" ></td> 
</tr> 
<% 
} 
%> 

回答

1

你需要用引号值:

onclick="getId('<%=rs.getString(1)%>')" 

否则,你将获得例如这样的输出:

onclick="getId(foo)" 

和JavaScript将试图解析“富”为变量从而失败。修复它将是:

onclick="getId('foo')" 

而“foo”将作为字符串传递给函数。

+0

但是,当rs.getString(1)...是1或100,或任何整数它的工作,但是当是abv_​​bg qwery或任何varchar从数据库它不工作什么引号改变 – KeySi

+0

okey谢谢我会尝试,这看起来像一个合乎逻辑的解释 – KeySi

+0

数字按原样传递(因为数值)因此不需要引号。大多数编程语言(如果不是全部的话)都是相同的,JSP确实也是其中之一。 –