Python 使用AJAX:DJANGO按行获取选中的所有复选框值
我有一个代码,可以从选中复选框的表中选择所有行。首先,我将描述我的表结构 所以这里有很多行,所以我应该选择我需要的服务器和应该执行的操作。因此,如果我有两个服务器ABC和BCD,如果我想执行ABC的开始操作和ABC的停止操作,我应该从第一个复选框中选择相应的服务器,并从与服务器名称相同的行上的复选框中选择相关联的操作。我应该将所有值按行传递给views.py以执行其他操作 所以现在我写了一个代码,即使我没有选中复选框,它也会给我这个值。我也没办法解决这个问题。有人能帮我吗 这是我的AJAX调用:Python 使用AJAX:DJANGO按行获取选中的所有复选框值,python,django,ajax,checkbox,Python,Django,Ajax,Checkbox,我有一个代码,可以从选中复选框的表中选择所有行。首先,我将描述我的表结构 所以这里有很多行,所以我应该选择我需要的服务器和应该执行的操作。因此,如果我有两个服务器ABC和BCD,如果我想执行ABC的开始操作和ABC的停止操作,我应该从第一个复选框中选择相应的服务器,并从与服务器名称相同的行上的复选框中选择相关联的操作。我应该将所有值按行传递给views.py以执行其他操作 所以现在我写了一个代码,即使我没有选中复选框,它也会给我这个值。我也没办法解决这个问题。有人能帮我吗 这是我的AJAX调用
$("[name=ButtonSubmit]").click(function(){
var myarrayServer = [];
var myarrayStart = [];
var myarrayRestart = [];
var myarrayStop =[];
var message = " ";
$(".form-check-input0:checked").each(function() {
var row = $(this).closest("tr")[0];
message += row.cells[1].innerHTML;
message += " " + row.cells[2].innerHTML;
message += " " + row.cells[3].innerHTML;
message += " " + row.cells[4].innerHTML;
var checkedValue = $('#flexSwitchCheckDefaultStart:checked').val();
message += " "+checkedValue;
var checkedValue2 = $('#flexSwitchCheckDefaultRestart:checked').val();
message += " "+checkedValue2;
// if (row.cells[5].children()[0].is(':checked')) {
// message += " " + row.cells[5].children[0].value;
// }
message += "\n";
alert(message);
var formdataD = new FormData();
formdataD.append('myarrayServer', message);
$.ajax({
url: "secondtableonDashboard", //replace with you url
method: 'POST',
data: formdataD,
datatype:'json',
processData: false,
contentType: false,
success: function(data) {
// alert("message: " + data.message);
},
error: function(error) {
// alert('error..'+error);
}
});
});
});
下面是HTML:
<tbody id="myTable">
{% for item in objs %}
<tr>
<td>
<div class="form-check form-switch">
<input class="form-check-input0" name="Services1" value="{{item.Component}}" type="checkbox" id="flexSwitchCheckDefault">
<label class="form-check-label0" for="flexSwitchCheckDefault">
</div>
</td>
<td>{{item.ServerName}}</td>
<td>{{item.Component}}</td>
<td>{{item.PID}}</td>
<td>
{{item.State}}</td>
<td id="hideInnerHTML">
<input class="form-check-input1" name="Start" value="START" type="checkbox" id="flexSwitchCheckDefaultStart">
<!-- <label class="form-check-label1 services" for="flexSwitchCheckDefault"> -->
Start
</td>
<td id="hideInnerHTML">
<input class="form-check-input2" name="Restart" value="RESTART" type="checkbox" id="flexSwitchCheckDefaultRestart">
<!-- <label class="form-check-label2 services" for="flexSwitchCheckDefault"> -->
</td>
<td id="hideInnerHTML">
<input class="form-check-input3" name="Stop" value="STOP" type="checkbox" id="flexSwitchCheckDefault">
<!-- <label class="form-check-labe3l services" for="flexSwitchCheckDefault"> -->
</td>
</tr>
{% endfor %}
</form>
</tbody>
{objs%中项目的%s}
{{item.ServerName}
{{item.Component}
{{item.PID}
{{item.State}
开始
{%endfor%}
首先,在您的代码中,您使用了具有相同名称的多个ID,因此只需删除该ID或使用类即可。然后,每当单击按钮提交时,首先获取服务器名
,并在内部数组中推送其值。现在,要获取同一行中的其他复选框值,您可以使用.resest(“tr”).find(“输入[type=checkbox]:checked:not(:first)”)
并将选中的复选框值推送到内部数组中,最后将此内部数组值放到外部数组中,并将其传递给ajax
演示代码:
$(“[name=ButtonSubmit]”。单击(函数(){
控制台清除()
var myarrayServer=[];
$(“.form-check-input0:checked”).each(函数(){
var opeartions=[]//用于内部数组
var行=$(此).tr;
//获取服务器名
var server_name=row.find(“td:eq(1)”).text().trim();
push(服务器名称)//推入数组
//获取在同一行中选中的复选框
行.find(“输入[类型=复选框]:选中:不(:第一)”)。每个(函数(){
opeartions.push($(this.val())
})
myarrayServer.push(opeartions)//主数组中的push值
});
console.log(myarrayServer);
var formdataD=new FormData();
append('myarrayServer',myarrayServer');
//这里是ajax呼叫
});代码>
服务器名
组成部分
PID
陈述
开始
重新启动
停止
A.
有些事
1.
跑步
B
有些事
2.
跑步
Send
Hi swati,但我希望它是按行的,就像每一行应该是一个列表一样,这样我将得到类似[[Server1,Start/Stop],[Server2,Start/Stop],…[ServerN,Start/Stop]]