![](/img/trans.png)
[英]passing values from drop down list and text box to JavaScript in JSP
[英]Passing database values from jsp to javascript
如何將所有值從數據庫表傳遞到javascript。 我嘗試使用此方法,但是javascript中僅傳遞了一個值。
這是我的jsp中的代碼
while(rs.next){
String timestamp= new SimpleDateFormat("MM/dd/yyyy hh:mm a").format(rs.getTimestamp("enddate"));
}
這就是它在我的javascript中的接收方式
<script language="JavaScript">
TargetDate = "<%=timestamp%>";
每次我運行腳本時,JavaScript中僅傳遞表中的第一個值。 我怎樣才能解決這個問題?
基本上,您需要遍歷結果集並獲取timetstamp列表。 當前,您僅獲取一個時間戳並顯示它。
然后,您需要將此Java列表轉換為Javacript數組將Java ArrayList轉換為JSON String,並使用JSON.parse()獲取Javascript對象
一旦有了Javascript對象,就可以在那里。
Java中的json: http : //json.org/java/
替代方法:
注意:完全不建議在JSP中使用scriptlet。 嘗試使用JSTL標簽庫。
既然您正在尋找,這里就是
<%
int length = 3; // in your case, resultset count
String results[] = new String[length];
results[0] = "result1";
results[1] = "result2";
results[2] = "result3";
// convert java string array to a javascript array
StringBuffer sb = new StringBuffer();
sb.append("[");
for (int i = 0; i < results.length; i++) {
sb.append("\"").append(results[i]).append("\"");
if (i + 1 < results.length) {
sb.append(",");
}
}
sb.append("]");
String jsarrayAsJavaString = sb.toString();
%>
<script language="JavaScript">
var target = <%= jsarrayAsJavaString %>
alert(target[0]); // target is a javascript array object. That's why you can do this
alert(target); // print the entire javascript array
//looping JS array
for(var i=0;i<target.length;i++) {
alert(target[i]);
}
</script>
</body>
我在您的代碼中看到的問題是,如果我沒有誤解的話; 您嘗試獲取rs的所有時間戳。 但是您聲明一個時間戳。
所以我認為,您應該在rs中循環,並在其中聲明時間戳,對於所有行,應該將其壓入Java端的數組中。
然后,當您嘗試在javasript端進行操作時,應將其作為時間戳json數組返回。 因此,對於javascript,您將擁有一個字符串數組。 在那里,我認為您應該再次循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.