在此fiddle
中我有一个按钮添加,点击时将输入数据添加到屏幕截图中给出的新行。组按钮用于创建一组用户编号。假设我想创建一个组朋友包含第1行,第2行和最后一行的移动号码。所以为此我只选择第一行,第二行和最后一行的复选框。然后按组按钮后会创建一个组。组名和组成员(手机号码)应该存储在数据库中。所以我我正在使用ajax。请告诉我如何传递所选行的移动号码。 以下是jquery
var val=0;
$(document).ready(function(){
$('#btn1').click(function(){
if($(".span4").val()!="")
{
$("#mytable").append('<tr id="mytr'+val+'"></tr>');
$("#mytr"+val).append('<td class=\"cb\"><input type=\"checkbox\" value=\"yes\" name="mytr'+val+'" checked ></td>');
$(".span4").each(function () {
$("#mytr"+val).append("<td >"+$(this).val()+"</td>");
});
val++;
}
else
{
alert("please fill the form completely");
}
});
$('#btn2').click(function(){
var creat_group=confirm("Do you want to creat a group??");
if(val>1){
alert(creat_group);
}
});
});
什么是群组,我为什么要这样做? 假设我有100条记录,其中一些是 java 员工,有些是 .net 员工,有些是大型机 假设我想只向java员工发送短信,如果我没有组,则在100条记录中 我必须手动检查谁是java employees.So为了避免我想为java创建组1,为.net创建1,为mainframe创建另一个。为了将sms发送给只有java的人我可以选择java组并发送短信
答案 0 :(得分:0)
试试这个,
var obj={};// add this
$('#btn1').click(function () {
if ($(".span4").val() != "") {
$("#mytable").append('<tr id="mytr' + val + '"></tr>');
$tr=$("#mytr" + val);
$tr.append('<td class=\"cb\"><input type=\"checkbox\" value=\"yes\" name="mytr' + val + '" checked ></td>');
$(".span4").each(function () {
$tr.append("<td >" + $(this).val() + "</td>");
});
// add below code
var arr={};
name=($tr.find('td:eq(1)').text());
email=($tr.find('td:eq(2)').text());
mobile=($tr.find('td:eq(3)').text());
arr['name']=name;arr['email']=email;arr['mobile']=mobile;
obj[val]=arr;
// add upto above line
val++;
} else {
alert("please fill the form completely");
}
});
同时更新并添加代码,
$(document).on('click', '#btn2',function () {
var creat_group = confirm("Do you want to creat a group??");
if (creat_group) {
console.log(obj);
}
});
// to get the checked data only
$(document).on('change','#mytable input:checkbox',function () {
if(!this.checked)
{
key=$(this).attr('name').replace('mytr','');
obj[key]=null;
}
});
答案 1 :(得分:0)
正如我的评论中所述,这是我的回答,您需要将其添加到$('#btn2').click()
:
$(document).ready(function () {
$('#btn2').click(function () {
var checkedRows = $('#mytable').find("input:checked").parent().parent();
var total = checkedRows.length;
var info = [];
for(i = 0; i < total; i++){
var row = $(checkedRows[i]).children();
var tmpInfo = [];
tmpInfo["name"]= row[1].innerHTML;
tmpInfo["email"]= row[2].innerHTML;
tmpInfo["phone"]= row[3].innerHTML;
info.push(tmpInfo);
}
console.log(info);
$.post('yourpage', info, function(){
//on success code, can be an alert or anything you want.
});
});
});
解释:基本上我们首先找到所有选中的复选框父行并创建一个数组(checkedRows
);
然后我们遍历这个数组(它比使用$.each
快得多)并将表格单元格1 2和3的内部HTML添加到info
数组中。 (td 0是复选框的单元格,所以我们不需要它);
向您的服务器发送信息,它应该是一个包含n个子阵列的阵列(取决于检查的行数),子阵列将保留名称,电子邮件和电话。