【问题标题】:passing data from javascript to servlet [duplicate]将数据从javascript传递到servlet [重复]
【发布时间】:2011-05-28 15:29:23
【问题描述】:

我有复选框的值,一旦我单击删除值,必须将类型发送到名为 DeleteServlet 的 servlet。请帮助我如何发送值?

<html>
    <head>
    <script type="text/javascript">
     function get_check_value(chkbox){
           if(chkbox.checked){
          var Values=chkbox.value;
          //send this Values to servlet

             }

    }
    function doDelete(theClick){
    var type=theClick;
//send this type to servlet
    alert(type);

    }

    </script>
    </head>
    <%String user=request.getParameter("Users"); %>
    <body>
    <%

    String User[]=user.trim().split(" ");

    for(int i=0;i<User.length;i++){%>
     <center>
        <form name='list' action='AddUserServlet'>

     <%  out.println("<input type='checkbox' name='user" + i + "' value='"+ User[i] + "' onClick='return get_check_value(this)'>" + User[i]+ "</input>" ); %>  

    </form> 

    <%}%>

        <input type="submit" value="ADD" name="b1" >
        <input type="submit" value="MODIFY" name="b1">
     <input type="submit" value="DELETE" name="b1" onClick="return doDelete(value)" > 

      </center>

    </body>
    </html>

我在警告框中尝试了这个“document.list.user.value”,它作为未定义的对象出现。要发送到 servlet,我尝试了以下行,但没有读取任何内容

chk_val=chkbox.value;
document.add.action = "AddUserServlet?type=delete&name="+chk_val;
 document.add.submit();

【问题讨论】:

    标签: javascript html jsp servlets


    【解决方案1】:

    你根本不需要 Javascript。

    只需更改您的代码,以便生成 HTML 表单,如下所示:

    <form action="AddUserServlet" method="post">
        <input type="checkbox" name="user" value="1">
        <input type="checkbox" name="user" value="2">
        <input type="checkbox" name="user" value="3">
        <input type="checkbox" name="user" value="4">
        <input type="checkbox" name="user" value="5">
    
        <input type="submit" name="b1" value="ADD">
        <input type="submit" name="b1" value="MODIFY">
        <input type="submit" name="b1" value="DELETE">
    </form>
    

    (复选框值必须是唯一的用户 ID)

    然后在您的AddUserServlet 中使用request.getParameterValues()

    String b1 = request.getParameter("b1");
    if ("DELETE".equals(b1)) {
        String[] users = request.getParameterValues("user");
        // ...
    }
    

    users 数组将包含检查值(1、2、3、4 和/或 5)。

    【讨论】:

    • 是的,我可以这样做,但问题是我从数据库中获取值。我必须在这里使用 for 循环来获取值。我可以更改代码吗?
    • 当然可以。只需将name='user" + i + "' 替换为name='user'。运用你的逻辑思维能力:)
    【解决方案2】:

    你可以使用 jQuery javascript 库吗?它易于使用,您会发现很多教程。 这是关于get方法(AJAX)http://api.jquery.com/jQuery.get/

    的好教程

    没有javascript可以做到吗?

    【讨论】:

      猜你喜欢
      • 2018-01-04
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多