【问题标题】:pass data from an editable table in jsp to a servlet将数据从 jsp 中的可编辑表传递到 servlet
【发布时间】:2013-12-11 04:24:55
【问题描述】:

我是 JSP 和 servlet 的新手。我必须允许用户在 html 表中键入一些问题并将输入的数据传递给 servlet。问题的数量可能会有所不同。所以,我想将它作为列表或数组传递给 servlet。我不喜欢为每一行使用隐藏标签,因为当行是动态的时会很乏味。

有人可以建议一种有效的方法来传递表格列中输入的所有问题吗? 这是代码 sn-p..

<body>
<form action="adminPageServlet" method="POST">
   <table class="table editabletable table-bordered table-condensed table-responsive"
                    border="1">
        <tr>
    <td><div contenteditable>Question1</div></td>
    </tr>

    <tr>
    <td><div contenteditable>Question2</div></td>
    </tr>

    </table>
<button class="btn btn-default" type="submit" id="loginBtn">Submit</button>
</form>
</body>

编辑:

非常感谢。我仍然无法将函数中的数据传递给 servlet。能否请你帮忙?我在这里不断收到一条错误警报消息 - 其中 textStatus:undefined 和 data:[Object object]。

jQuery.ajax({
                url:'adminPageServlet',
                data:{"key1":"value1","key2":"value2"},
                type:'POST',
                contentType:"application/json; charset=utf-8",
                dataType : 'json',  
                success:function(data, textStatus, jqXHR){
                    // access response data
                    alert("success");
                },
                error:function(data, textStatus, jqXHR){
                    console.log('Service call failed!');
                    alert("failed - data"+data+"textSTatus"+textStatus);
                }
            });

我尝试使用

将问题转换为 JSON 字符串
var jsonString = JSON.stringify(questions);

并尝试通过它。不工作。你能帮忙吗?

【问题讨论】:

    标签: java html jsp servlets


    【解决方案1】:

    当用户按下提交按钮时,在提交之前调用一个将所有问题放入数组中的函数说

    var Question=new Array();
    

    然后将该数组解析为JSON format。当它被解析后,然后发布请求。

    像这样:

    $.ajax({
                    type: 'POST',
                    url: '',
                    contentType:"application/json; charset=utf-8",
                    dataType:"json"
                    data:  JSONData
                    success: function(data){                       
                    }   // Success Function
    });
    

    在服务器端读取 JSON。

    请参阅此stackoverflow

    更新

    function getQuestions(){
            var row  =$(".table tr")
            var questions=new Array();
            row.each(function(){
                var que = $(this).find("td div").html();
                console.log(que);
                Questions.push(que);
    
            }); 
            return questions;
        }
        function sentData()
        {
            var Questions=getQuestions();
    
            // your array to JSON Code
    
            $.ajax({
                    type: 'POST',
                    url: '',
                    contentType:"application/json; charset=utf-8",
                    dataType:"json"
                    data:  JSONData
                    success: function(data){                       
                    }   // Success Function
            });     
    
        }
    

    在 Html 中而不是提交按钮中写这个

    <button onClick="sendData()">Send</button>
    

    【讨论】:

    • SeeTheC:感谢您的回复。我的疑问是如何获取用户输入的每个不同的问题并将其放入数组中?我不确定如何捕捉用户响应并调用该函数。能详细点吗?
    猜你喜欢
    • 1970-01-01
    • 2012-12-05
    • 2013-06-20
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    相关资源
    最近更新 更多