Php 从选定的表行获取ID
从Datatable中选择的表行获取正确的ID时遇到了一些麻烦。我用来查看JS脚本返回内容的警报只显示所选第一行的相同ID,不管表列表中有多少行,当然每个行的ID总是不同的(来自Mysql)。令人困惑即使通过提神也是一样的。我的代码中一定有一个小错误。有什么提示吗?这是: 通过JSON编码的PHP行输出:Php 从选定的表行获取ID,php,jquery,json,ajax,html,Php,Jquery,Json,Ajax,Html,从Datatable中选择的表行获取正确的ID时遇到了一些麻烦。我用来查看JS脚本返回内容的警报只显示所选第一行的相同ID,不管表列表中有多少行,当然每个行的ID总是不同的(来自Mysql)。令人困惑即使通过提神也是一样的。我的代码中一定有一个小错误。有什么提示吗?这是: 通过JSON编码的PHP行输出: $query = $mysqli->query($sql) or die; $data = array(); // fetch data as array
$query = $mysqli->query($sql) or die;
$data = array();
// fetch data as array
while($row = $query->fetch_array()) {
$nestedData=array();
$nestedData[] = $row["email"];
$nestedData[] = $row["ipv4"];
$nestedData[] = $row["created"];
// $nestedData[] = '<a class="delete" href="#"><i class="fa fa-trash-o"></i></a>';
$nestedData[] = '<button type="button" class="delbtn btn btn-danger btn-xs" data-id="'.$row['id'].'">Delete</button>';
$nestedData[] = '<a class="btn btn-info btn-xs" href="newsModal.php?id='.$row['id'].'" data-toggle="modal" data-target="#newsModal" edit-id="'.$row['id'].'">Edit</a>';
$data[] = $nestedData;
}
刷新
印刷品
删除
电子邮件
IPv4
创建
您可以这样尝试:
$('#button').click( function () {
if ( $('tr.selected').hasClass('selected') ) {
alert($('tr.selected button.delbtn').attr('data-id'));
}
else {
alert('Please select a table row first');
}
});
也许这有助于:
$(document).ready(function() {
var table = $('#example').DataTable();
$('#example tbody').on( 'click', 'tr', function () {
if ( $(this).hasClass('selected') ) {
$(this).removeClass('selected');
}
else {
table.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
} );
$('#button').click( function () {
if ( $('tr.selected').hasClass('selected') ) {
var id = $('tr.selected button.delbtn').attr('data-id');
var data = 'id=' + id ;
alert(id);
// $.ajax({
// type: "POST",
// url: "newsdelrow.php",
// data: data,
// cache: false,
// success: function(response) {
// alert(response);
// }
// });
// table.row('.selected').remove().draw( false );
}else { alert('Please select a table row first'); }
} );
$("#example tbody").on('click', '.delbtn', function(){
var id = $(this).attr('data-id');
var data = 'id=' + id ; // var data = {'name': name } can be used instead
alert(id);
});
} );
$(this.find('td-button[type=button]')).attr('data-id')代码>尝试此选项,然后它会显示“未定义”。我猜原因是selected没有“数据id”属性。这就是我第一个想到的解决问题的方法。你能添加渲染的HTMLRight吗?我通过为tbody添加一个图像来编辑我的帖子。其数据由PHP中的JSON呈现。看最后一张图片。你可以给tr自己id。类似这样的-不,警报说:“未定义”。没有提取ID。我已经修改了您的JSFIDLE代码,现在它可以工作了-OMG,太好了!现在,它的工作如预期。从现在起,我将使用JSFIDLE来解决代码中的小错误。有时这太简单了,但盲人需要帮助才能看到:-D。看看这里所有的这些,寻找丢失的tr。选择的线。好了,各位,太棒了,非常感谢!我为这个问题做了一个JSFiddle,这样你就可以看到我在说什么了。顶部的ID和Delete按钮也会出现同样的问题。这方面仍然需要帮助。只需添加以下内容:var id=$('tr.selected button.delbtn').attr('data-id');
$('#button').click( function () {
if ( $('tr.selected').hasClass('selected') ) {
alert($('tr.selected button.delbtn').attr('data-id'));
}
else {
alert('Please select a table row first');
}
});
$(document).ready(function() {
var table = $('#example').DataTable();
$('#example tbody').on( 'click', 'tr', function () {
if ( $(this).hasClass('selected') ) {
$(this).removeClass('selected');
}
else {
table.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
} );
$('#button').click( function () {
if ( $('tr.selected').hasClass('selected') ) {
var id = $('tr.selected button.delbtn').attr('data-id');
var data = 'id=' + id ;
alert(id);
// $.ajax({
// type: "POST",
// url: "newsdelrow.php",
// data: data,
// cache: false,
// success: function(response) {
// alert(response);
// }
// });
// table.row('.selected').remove().draw( false );
}else { alert('Please select a table row first'); }
} );
$("#example tbody").on('click', '.delbtn', function(){
var id = $(this).attr('data-id');
var data = 'id=' + id ; // var data = {'name': name } can be used instead
alert(id);
});
} );