如何在jsp中获取动态创建的文本框的值

时间:2015-03-23 09:40:31

标签: java javascript mysql jsp

我正在创建一个社交网站,我遇到了一个问题。

我从数据库中获取记录,并且每条记录都要添加一个按钮,以便我可以使用该文本框更改该记录。

但是当我使用该文本框更新记录时,它只获得第一个文本框的值。如果我要更新2345等记录,那么它将获得第一个文本框的值。

所以请帮助我如何才能获得每个文本框的价值 - 而不仅仅是第一个文本框。

提前致谢。

以下是我的代码:

<%
Statement st1;
         ResultSet rs1;
         Connection con;
Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dfmc","root","93Pb3gaNv0");
String sql1="select * from user_table LIMIT 5";
            st1 = con.createStatement();
            rs1=st1.executeQuery(sql1);
            String id=null,name=null;
while(rs1.next()){
                id=rs1.getString("id");
                name=rs1.getString("first_name");
                %>
<div><input type="text" name="txt" id="name" />
<input type="button" name="btn" value="Rating" onclick="loadXMLDoc(<%=id%>)">
                    <p id="showname"><%=name%></p>
    </div>
<script type="text/javascript">
function loadXMLDoc(iid){
var idd=iid;
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {





document.getElementById("showname").innerHTML=xmlhttp.responseText; 

    }
}
var name;
name = document.getElementById("name").value;
xmlhttp.open("GET", 'insert_rating?name='+name+'&id='+idd+'', true);
xmlhttp.send();
}
</script> 

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题,但我可以通过使用request.getParameterValues(“DynamicTextBox”)轻松获取servlet上的javascript动态文本框值;

客户端代码:

$("#btnGet").bind("click", function () {
        var values = "";
        $("input[name=DynamicTextBox]").each(function () {
            values += $(this).val() + "\n";
        });
        alert(values);

    });

});
function GetDynamicTextBox(value) {
    return '<input name = "DynamicTextBox" type="text" value = "' + value + '" />&nbsp;' +
            '<input type="button" value="Remove" class="remove" />'
}

服务器端代码(servlet):

String[] duration= request.getParameterValues("DynamicTextBox");
for (String string : duration) {
    System.out.println("Duration1=="+string);
}