【问题标题】:Display JSON data in table format with a submit button corresponding to each row以表格格式显示 JSON 数据,每行对应一个提交按钮
【发布时间】:2020-07-20 20:01:15
【问题描述】:

/* 如何将 json 数据显示到 JSP 页面中的表格中,每行都有一个提交按钮。单击提交按钮时,应将行数据发送到 servlet。

我使用 Ajax 从 Servlet 获取 json 数据。

下面是我从 Servlet 获取 JSON 数据的 ajax 调用 */

function updateprofile(){
$.ajax({
url : 'abc/ConnectionInfo',
type: 'GET',
data: {},
data type: 'json'
}).done(function (data){
     renderProfiles(data);
}).fail(function (){
toaster.error("Eror...");
});
}

function 
renderProfiles(data){

//How can I implement this 
method to display all the 
data in table format with a 
button corresponding to 
each row.  And on clicking 
of the button it should 
send a profile ID to 
Servlet Post method.
}

【问题讨论】:

  • 在 ajax 调用中发布您从 servlet 获取的 json 数据
  • [{"metric":"connected[qa_KCDz->Exre]"},"metric":"connected[qa_KTDz->Exre]"},"metric":"connected[qa_KPDz-> Exre]"}]
  • @Swati 我已经发布了 json 数据。我想在表格行中显示“已连接 [qa_KCDz->Exre]”部分,并且当用户单击其相应按钮时。让我们说第一行的按钮,然后“qa_KCDz”应该转到 Servlet post 方法

标签: java json jsp servlets


【解决方案1】:

您可以使用$.foreach 循环来迭代您的 json 数据并将它们显示在您的表格中。演示代码(您需要根据您的要求对以下代码进行更改):

//your json data
var response = [{
    "metric": "connected[qa_KCDz->Exre]"
  },
  {
    "metric": "connected[qa_KTDz->Exre]"
  },
  {
    "metric": "connected[qa_KPDz->Exre]"
  }
];

var str = '<table border=1><tr>\n' +
  '<th>Something</th>\n' +
  '<th>Submit</th>\n' +
  '</tr>';
  //looping through json data
$.each(response, function(key, value) {
  //get value
  var s = value['metric'];
  //getting index of [
  var i = s.indexOf('[');
  var data = s.slice(10, i + 8).trim();

  str += '<td>' + value['metric'] + '</td>';
  str += '<td> <form method="post" action="servletname"><input type="hidden" name="data" value=' + data + ' ><input type="submit" value ="send" ></form></td></tr>';


});
str += "</table>";

//appending data
$("#table").html(str);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="table"> </div>

将上面的jquery代码放在function renderProfiles(data){..}下。此外,在&lt;form&gt;&lt;/form&gt;标签下,我添加了一个hidden输入字段,其中包含您需要发送到servlet的所需值。使用request.getParameter("data")获取该值在doPost servlet 方法中。

【讨论】:

  • 耶!它奏效了。非常感谢您的帮助和快速响应。
  • 嘿@Swati。你知道我们如何使用 Ajax 而不是使用表单来实现它,这样页面就不会重定向。
  • button标签中分配具有所需值的data-id="+data+"并使用jquery的onclick事件使用$(this).attr("data-id")获取按钮的值并使用ajax传递相同的值。
  • str += ' ';
  • 函数 submitcinnection() { 调试器; $.ajax({ url : 'abc/reconnect', type:'POST', dataType : 'json' , 内容类型: 'application/json; charset=utf-8', data: JSON.stringify({data : $ (this).attr("data-id)}),
猜你喜欢
  • 1970-01-01
  • 2014-04-24
  • 1970-01-01
  • 1970-01-01
  • 2022-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多