嗨!我是JavaScript和Node的完全菜鸟,所以我可能会在我脑海中。
我已连接到一个数据库,其中包含有关该事件的问题的事件。用户可以回答问题并将答案记录到数据库中。
我使用Node,Express和MySQL通过路由从数据库中获取数据。然后使用“forEach”将问题显示在表格中。
我也在使用“tabletools”(www.tabletools.net)来排序和搜索显示的数据。
我正在使用“tabletools”尝试使用“select multiple rows”从所选行中获取Question_ID。我目前不知道如何实现这一目标,但我正在尝试这种方法:
$('#fbody tbody').on( 'click', 'tr', function () {
$(this).toggleClass('selected');
} );
$('#generate').click( function () {
alert(table.rows('.selected').data());
} );
“#generate”是与该表关联的按钮的ID。我目前只是试图“提醒”结果以查看它是否有效......
我想访问Table Row-tag中的属性“value”。我不想访问Table Data-tag中的文本。
表格如下:
<table id="fbody" class="table table-striped">
<div id="controlPanel"><h4><small>Export to: </small></h4></div>
<button id="generate">Generate</button>
<thead>
<% data2.forEach(function (event){ %>
<th><%= event.name %></th>
<th><%= event.location %></th>
<% }); %>
</thead>
<% data.forEach(function (question) { %>
<tr id="answer<%= question.course_module_id %>" value="<%= question.course_module_id %>">
<td><a href="/answers/<%= question.course_module_id %>?type=<%= question.question_type %>"><%= question.name %></a></td>
<td><%= question.location %></td>
</tr>
<% }); %>
</table>
对不起,如果它看起来有点乱......
我希望能够在表的TR标签内访问“value”,因为它包含question_ID,因此我可以将多个Question_ID推送到新路由,以便我可以使用SQL Query发送它们。 ..
注意:course_module_id与我稍后在SQL中加入的question_id相同。
我现在设法通过此代码控制日志所有ID:
var arr = [];
var i = 0;
$(document).ready(function(){
$("#generate").click(function(){
$(".selected").each(function(i, obj){
arr[i++] = $(this).data('value');
});
$.each(arr, function(index, val) {
console.log(val);
});
});
});
现在剩下的部分是将这些值发送到一条路线,知道怎么做?
答案 0 :(得分:0)
您可以使用post方法发送并在表格中插入表单,如下所示:
<强> HTML:强>
<form id="send">
<table id="fbody" class="table table-striped">
<div id="controlPanel">
<h4><small>Export to: </small></h4></div>
<button id="generate">Generate</button>
<thead>
<% data2.forEach(function (event){ %>
<th>
<%= event.name %>
</th>
<th>
<%= event.location %>
</th>
<% }); %>
</thead>
<% data.forEach(function (question) { %>
<tr id="answer" value="<%= question.course_module_id %>">
<td>
<a href="/answers/<%= question.course_module_id %>?type=<%= question.question_type %>">
<%= question.name %>
</a>
</td>
<td>
<%= question.location %>
</td>
</tr>
<% }); %>
</table>
<button onclick="sendValues();">Send</button>
</form>
<强> JS:强>
function sendValues() {
var values = [],
value = {};
value.id = '';
$('tr[id="answer"]').each(function(key, val) {
value.id = val.value;
values[key] = value;
});
$.ajax({
type: 'POST',
data: JSON.stringify(values),
cache: false,
contentType: 'application/json',
url: '/send',
success: function(ret) {
if (ret == true)
alert("Ok");
else {
alert("Not ok");
}
}
});
}
在这里,使用Jquery,我们将所有 tr 进行交互。因为你只选择了tr,你也可以用Jquery来验证它,在这种情况下取决于输入的methodoly。然后在发送到节点之前创建具有所选值的json和数组。
<强> Node.js的强>
app.post('/send', function(req, res) {
var values = req.body;
values.forEach(function(entry) {
console.log(entry.id); // The id will show here
});
res.send(true);
});
Node通过post方法获取值并进行交互。对于你的情况,尝试这样做并提出疑问。