Java/jsp使用一个javascript方法以不同的方式修改多个表单
Java/jsp use one javascript method to modify multiple forms differently
我正在创建一个看起来和行为都像Facebook墙的墙。我面临的问题是,我想让它能够评论帖子。但我似乎不明白,如何使评论表单出现(一个输入字段与type=text
)的帖子。
所以我有一个代码块打印出所有的帖子和以下评论从数据库到网站通过while循环。但是我不知道如何让它打印一行按钮来创建一个输入表单onclick。
代码如下,首先是丹麦语-英语的翻译:
-
beskeder
=表在我的MySQL数据库中包含的帖子 -
kommentarer
=表在我的MySQL数据库包含评论的帖子 -
navn
= name -
besked
= message -
kommentar
= comment
<%
if (wallrs != null) {
while(wallrs.next()) {
%>
<br><b><%=wallrs.getString("navn")%></b>
<br><%=wallrs.getString("besked") %>
<%
int wallrsid = wallrs.getInt("id");
dbconnect.getKommentarResultset(wallrsid);
ResultSet kommentarrs = dbconnect.getKommentarRS();
if (kommentarrs != null) {
while (kommentarrs.next()) {
%>
<Blockquote>
<b><%=kommentarrs.getString("navn") %>:</b>
<br><%=kommentarrs.getString("kommentar") %>
</Blockquote>
<%
}
}
%>
<form id="besked<%= wallrsid%>"></form>
<button type="submit" onclick="show_form()">Kommenter</button>
<%
}
}
%>
它所链接的JavaScript函数:
function show_form() {
document.getElementById("besked").innerHTML = "<input type=text value=Skriv>";
}
JavaBean: public void createMessage(String besked, String ip) {
try {
PreparedStatement pstmcreateMessage = con.prepareStatement("INSERT INTO beskeder(navn, besked, ip) VALUES(?,?,?)");
pstmcreateMessage.setString(1, getName());
pstmcreateMessage.setString(2, besked);
pstmcreateMessage.setString(3, ip);
pstmcreateMessage.executeUpdate();
System.out.println("SUCCES! ");
} catch(Exception e) {
e.printStackTrace();
System.out.println("Can't create message");
}
}
public void createComment(String kommentar, String ip, int beskedid) {
try {
PreparedStatement pstmcreateComment = con.prepareStatement("INSERT INTO kommentarer(navn, kommentar, ip, beskedid) VALUES(?,?,?,?)");
pstmcreateComment.setString(1, getName());
pstmcreateComment.setString(2, kommentar);
pstmcreateComment.setString(3, ip);
pstmcreateComment.setInt(4, beskedid);
} catch(Exception e) {
e.printStackTrace();
System.out.println("Can't create comment");
}
}
// Returner hele væggen i et result set
private ResultSet wallRS;
public void getWallResultset() {
PreparedStatement getWall;
try {
getWall = con.prepareStatement("SELECT * FROM beskeder");
wallRS = getWall.executeQuery();
} catch (SQLException e) {
System.out.println("Error in resultset wall rs");
// e.printStackTrace();
}
}
public ResultSet getWallrs() {
return wallRS;
}
// Returner kommentarer
private ResultSet kommentarRS;
public void getKommentarResultset(int beskedid) {
PreparedStatement getComment;
try {
getComment = con.prepareStatement("SELECT * FROM kommentarer WHERE beskedid=?");
getComment.setInt(1, beskedid);
kommentarRS = getComment.executeQuery();
} catch(Exception e) {
e.printStackTrace();
}
}
public ResultSet getKommentarRS() {
return kommentarRS;
}
正如你看到的id="besked"
的形式不是唯一的,所以我不能让他们单独显示。我怎么解它?
您需要将表单ID传递给JS函数,以便它可以定位正确的表单。
代替<button type="submit" onclick="show_form()">Kommenter</button>
<button onclick="show_form('besked<%= wallrsid%>')">Kommenter</button>
和替换
function show_form() {
document.getElementById("besked").innerHTML = "<input type=text value=Skriv>";
}
function show_form(id) {
document.getElementById(id).innerHTML = '<input type="text" name="kommentar" value="Skriv">';
}
与具体问题无关,scriptlet 被认为是不良实践,您的JDBC代码正在泄漏DB资源。
相关文章:
- 使用AJAX在Rails中提交动态表单的最佳方式是什么
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- Ajax 请求后,以正常方式提交表单
- 使用两个按钮(提交按钮和普通按钮),它们应该以不同的方式提交相同的表单
- 临时存储用户表单数据的最佳方式,用于表单重新提交
- 如何使用Angularjs以PHP方式提交表单
- 如何以正确的方式触发表单提交
- 在向导表单中使用按钮提交值的最佳方式
- 在rails中选择向表单添加文本字段的最佳方式
- Jquery/javascript方式发送50个表单,就像发送1个表单一样
- 以编程方式自动填写和提交表单
- 实现动态表单验证 Rails 的最佳方式
- Drupal 7 Field API:如何以编程方式发送表单元素属性 #ajax 指定的AJAX请求
- 将表单的 enctype 设置为 application/json 的角度方式
- 通过单击按钮或表单提交禁用注册按钮,这两种方式都会阻止表单提交
- 更改表单的提交方式,而无需使用 JavaScript
- 以编程方式提交角度表单,但仍会收到 HTML5 验证错误
- 通过 JS 以编程方式触发 JSF ajax 表单
- 使用离子移动应用程序与 Django 进行表单处理的最佳方式
- 在Angular中显示表单验证错误的正确方式