[英]Jquery + php, remove dynamic rows from table td click
單擊特定的行列時,我試圖從表中刪除行。 我正在使用.live()以便刪除從ajax請求添加的行。 它工作正常,我的問題是,該表來自php,具有兩行,然后我可以插入新行並將其刪除,但是當我刪除php附帶的行之一時,它將刪除表中的所有行。
PHP:
<table id="listaEquipamentos">
<?php
if($this->listaEquipamentos){
foreach ($this->listaEquipamentos as $equipamento) {
$UF = trim($equipamento['siglaUF']);?>
<tr>
<td><?php echo $equipamento['siglaUF'];?></td>
<td><?php echo $equipamento['siglaLocalidade'];?></td>
<td><?php echo $equipamento['siglaEstacao']?></td>
<td><?php echo $equipamento['nomeEquipamento'];?></td>
<td><?php echo $something; ?></td>
<td align="center">
<?php echo "<input class='bot1' type='button' value='X'> " ?>
</td>
</tr>
<?php } ?>
</table>
JavaScript:
$('#listaEquipamentos tr > td:nth-child(6)').live("click", function(){
if(confirm("Do you want to remove this row?")){
$(this).parent('tr').remove();
}
});
$("#btnAddEquipamento").click(function(){
var ok = 1;
if($("#slcUF").val() == 0){
alert("UF em Branco");
ok = 0;
} else if($("#slcLocalidade").val() == 0){
alert("Localidade em Branco");
ok = 0;
} else if($("#slcEstacao").val() == 0){
alert("Estacao em Branco");
ok = 0;
} else if($("#txtEquipamento").val() == ""){
alert("Equipamento em Branco");
ok = 0;
} else if($("#slcEquipamento").val() == "0"){
alert("Equipamentoo em Branco");
ok = 0;
}
if(ok){
if($("#slcAbrangencia").val() != ""){
var toadd = $('#slcEquipamento option:selected').text();
var existe = 0;
$("#divListaEquipamento tr>td:nth-child(4)").each(function(index){
if( $(this).text() == toadd)
existe = 1;
});
if(existe != 1){
var uf = $('#slcUF option:selected').text();
var loc = $('#slcLocalidade option:selected').text();
var est = $('#slcEstacao option:selected').text();
if($("#slcEquipamento").val() > 0){
$("#hdnEquipamento").val($("#slcEquipamento").val()+"||"+$('#slcEquipamento option:selected').text());
}else{
var equip = $('#txtEquipamento').val().substr(0,15);
$("#hdnEquipamento").val(equip);
}
var tempLoc = loc.split("-");
var tempEst = est.split("-");
$("#hdnUF").val(uf.substr(0,2));
$("#hdnLocalidade").val(tempLoc[0]);
$("#hdnEstacao").val(tempEst[0]);
$.post("/aplicacao/jm/index.php/janela/addequipamento", $("#frmNovaJanela").serialize(),
function(data){
if(data[0] != null){
$(".tabResultado1 > tbody>tr:last").prev().append("<tr><td>"+data[1]+"</td><td>"+data[3]+"</td><td>"+data[5]+"</td><td>"+data[7]+"</td><td>"+data[8]+"</td><td><input class='bot1' type='button' value='X'></td></tr>");
var total = parseInt($("#divListaEquipamento tr:last > td:nth-child(5)").text()) + parseInt(data[8]);
$("#divListaEquipamento tr:last > td:nth-child(5)").text(total);
}else alert("Problema ao gravar equipamento.")
}, "json");
}else{
alert('O Equipamento '+toadd+' já está na lista.');
}
}else{
alert ("Favor Selecionar a Abrangencia.");
}
}
});
我已經嘗試過:
$(this).parent('tr').remove();
$(this).parents('tr').remove();
$(this).parent().parent().remove();
$(this).closest('tr').remove();
我可能在做一些愚蠢的事情! 我更改了一些內容,現在可以使用了!
$('#listaEquipamentos tr > td:nth-child(6)').live("click", function(){
if(confirm("Deseja remover esta linha?")){
$(this).parent('tr').remove(); ;
}
});
$("#btnAddEquipamento").click(function(){
var ok = 1;
if($("#slcUF").val() == 0){
alert("UF em Branco");
ok = 0;
} else if($("#slcLocalidade").val() == 0){
alert("Localidade em Branco");
ok = 0;
} else if($("#slcEstacao").val() == 0){
alert("Estacao em Branco");
ok = 0;
} else if($("#txtEquipamento").val() == ""){
alert("Equipamento em Branco");
ok = 0;
} else if($("#slcEquipamento").val() == "0"){
alert("Equipamentoo em Branco");
ok = 0;
}
if(ok){
if($("#slcAbrangencia").val() != ""){
var toadd = $('#slcEquipamento option:selected').text();
var existe = 0;
$("#divListaEquipamento tr>td:nth-child(4)").each(function(index){
if( $(this).text() == toadd)
existe = 1;
});
if(existe != 1){
var uf = $('#slcUF option:selected').text();
var loc = $('#slcLocalidade option:selected').text();
var est = $('#slcEstacao option:selected').text();
if($("#slcEquipamento").val() > 0){
$("#hdnEquipamento").val($("#slcEquipamento").val()+"||"+$('#slcEquipamento option:selected').text());
}else{
var equip = $('#txtEquipamento').val().substr(0,15);
$("#hdnEquipamento").val(equip);
}
var tempLoc = loc.split("-");
var tempEst = est.split("-");
$("#hdnUF").val(uf.substr(0,2));
$("#hdnLocalidade").val(tempLoc[0]);
$("#hdnEstacao").val(tempEst[0]);
$.post("/aplicacao/jm/index.php/janela/addequipamento", $("#frmNovaJanela").serialize(),
function(data){
if(data[0] != null){
$("#listaEquipamentos > tbody:last").append("<tr><td>"+data[1]+"</td><td>"+data[3]+"</td><td>"+data[5]+"</td><td>"+data[7]+"</td><td>"+data[8]+"</td><td><input class='bot1' type='button' value='X'></td></tr>");
var total = parseInt($("#totalCliente").val()) + parseInt(data[8]);
$("#totalCliente").val(total);
}else alert("Problema ao gravar equipamento.")
}, "json");
}else{
alert('O Equipamento '+toadd+' já está na lista.');
}
}else{
alert ("Favor Selecionar a Abrangencia.");
}
}
嘗試更改此:
$(this).parent('tr').remove(); ;
至:
$(this).parent().remove(); ;
您看過數據表嗎? 由於我已經切換到它,所以表操作非常容易,並且它為我提供了比我所關心的編程更多的功能。 我為您提供示例的特定頁面是用於動態行選擇(如果啟用了分頁,則跨頁面)並刪除選定的行。
通過使用數據表,我通過使用數據表(通過AJAX)將數據拉入到一個表中來實現此解決方案,按照鏈接中記錄的方式進行選擇,然后刪除不僅是刪除了如圖所示的元素,而且還發送了一個Ajax調用返回到服務器以在表中刪除。 數據表允許我通過內置的數據處理程序執行此操作,該處理程序會將$ _REQUEST變量傳遞給構建查詢的頁面,而我又可以使用該查詢進行刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.