Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从选定的表行获取ID_Php_Jquery_Json_Ajax_Html - Fatal编程技术网

Php 从选定的表行获取ID

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

从Datatable中选择的表行获取正确的ID时遇到了一些麻烦。我用来查看JS脚本返回内容的警报只显示所选第一行的相同ID,不管表列表中有多少行,当然每个行的ID总是不同的(来自Mysql)。令人困惑即使通过提神也是一样的。我的代码中一定有一个小错误。有什么提示吗?这是:

通过JSON编码的PHP行输出:

$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);

    });
} );