javascript - 如何实现复选框选择功能以使用 ajax/json 发送电子邮件?如果可能的话
问题描述
我有一个 MVC 应用程序,它使用 dataTables 并通过 c# 控制器调用列的数据和复选框,然后在 .cshtml 表索引中调用 json/ajax 脚本。这可能不是最有效的方法,但它是我到目前为止的工作方式。
如果可能在 json/ajax 或 jquery/javascript 中,我该如何选择一个复选框,然后单击一个按钮,该按钮调用一个模式来发送电子邮件,但正在从复选框调用数据表中电子邮件的 ID,所以我不必手动输入要发送电子邮件的电子邮件地址(只需主题和电子邮件正文)。如果不可能,我该怎么做?
用于列的 html
<div style="width:90%; margin:0 auto" class="tablecontainer">
<a class="popup btn btn-primary" href="/CRUD/save/0" style="margin-
bottom:20px; margin-top:20px;">Add New Volunteer</a>
<table id="myDatatable">
<thead>
<tr>
<th><input type="checkbox" name="select_all" value="1" id="example-select-all"></th>
<th>Email</th>
<th>Password</th>
<th>First Name</th>
<th>Last Name</th>
<th>Phone Number</th>
<th>Address</th>
<th>City</th>
<th>State</th>
<th>Zip Code</th>
<th>Credentials</th>
<th>Availability</th>
<th>Edit</th>
<th>Delete</th>
</tr>
</thead>
</table>
</div>
ajax/json 示例
<script>
$(document).ready(function () {
var oTable = $('#myDatatable').DataTable({
"ajax": {
"url": '/CRUD/GetEmployees',
"type": "get",
"datatype": "json"
},
"columns":
[
{"data": "empty"},
{ "data": "EmailID", "autoWidth": true },
{ "data": "Password", "autoWidth": true },
{ "data": "FirstName", "autoWidth": true },
{ "data": "LastName", "autoWidth": true },
{ "data": "PhoneNumber", "autoWidth": true },
{ "data": "UserAddress", "autoWidth": true },
{ "data": "UserCity", "autoWidth": true },
{ "data": "UserState", "autoWidth": true },
{ "data": "UserZip", "autoWidth": true },
{ "data": "UserCredentials", "autoWidth": true },
{ "data": "UserDate", "autoWidth": true },
{"data": "UserID", "width": "50px", "render": function (data) {
return '<a class="popup" href="/CRUD/save/'+ data + '">Edit</a>';}
},
{
"data": "UserID", "width": "50px", "render": function (data) {
return '<a class="popup" href="/CRUD/delete/' + data + '">Delete</a>';
}}],
'columnDefs': [{
'targets': 0,
'searchable': false,
'orderable': false,
'className': 'dt-body-center',
'render': function (data, type, full, meta) {
return '<input type="checkbox" name="id[]" value="' +
$('<div/>').text(data).html() + '">';}}]})
// more code here for modal on clicks for edit and delete views //
</script>
解决方案
我认为您需要使用-
table.rows('.selected').data()
var table = $('#example').DataTable();
var emailbox=$("#emailBox");
emailbox.val('');
console.log(table.rows('.selected').data());
var selectedData=table.rows('.selected').data();
var emails = $.map(selectedData, function (item) { return item[2] });
console.log(emails);
for(var i=0;i<emails.length;i++){
if(i==0){
emailbox.val(v);
}
else{
emailbox.val(emailbox.val()+";"+ v);
}
}
$.each(emails,function(k,v){
emailbox.val(emailbox.val()+v);
})
你可以在这里看到一个工作示例。
推荐阅读
- python-3.x - 有没有办法打开一个封闭的 Image 对象?
- java - 获取二叉树特定级别的所有节点
- javascript - 我的待办事项列表 Javascript 代码不会将我想要的样式存储在数组中
- html - 此自定义 HTML 代码的联系表单字段
- node.js - gcloud 功能部署不上传 html 和 css
- vba - For循环和If语句Excel VBA
- laravel - laravel livewire 提交表单后返回空白页
- javascript - 登录时未定义的数组键 pageType,即使它已添加到页面
- python - 通过 train_test_split() 使用单独的测试和训练文件
- java - 将表示为链表的数字相乘