2016-06-13 37 views
0

我有一个填充数据网格表的脚本。我想让每个显示的行的超链接。制作数据网格表中每个行的超链接

超链接看起来应该像<a href"index.php?id=(id of the row)">

我怎么做我目前的脚本。

这里是我的脚本:

<?php 
// initilize all variable 
$params = $columns = $totalRecords = $data = array(); 
$params = $_REQUEST; 

//define index of column 
$columns = array( 
    0 => 'id', 
    1 => 'name', 
); 
$where = $sqlTot = $sqlRec = ""; 

// check search value exist 
if(!empty($params['search']['value'])) { 
    $where .=" WHERE "; 
    $where .=" name LIKE '".$params['search']['value']."%'"; 
} 

// getting total number records without any search 
$sql = "SELECT id, name FROM `customers`"; 
$sqlTot .= $sql; 
$sqlRec .= $sql; 

//concatenate search sql if value exist 
if(isset($where) && $where != '') { 
    $sqlTot .= $where; 
    $sqlRec .= $where; 
} 

$sqlRec .= " ORDER BY ". $columns[$params['order'][0]['column']]." ".$params['order'][0]['dir']." LIMIT ".$params['start']." ,".$params['length']." "; 
$queryTot = mysqli_query($conn, $sqlTot) or die("database error:". mysqli_error($conn)); 
$totalRecords = mysqli_num_rows($queryTot); 
$queryRecords = mysqli_query($conn, $sqlRec) or die("error to fetch customers data"); 

//iterate on results row and create new index array of data 
while($row = mysqli_fetch_row($queryRecords)) { 
    $data[] = $row; 
} 

$json_data = array(
"draw"   => intval($params['draw']), 
"recordsTotal" => intval($totalRecords), 
"recordsFiltered" => intval($totalRecords), 
"data"   => $data // total data array 
); 

echo json_encode($json_data); // send data as json format 
?> 

编辑1:

我在这里显示的数据:

<table id="employee_grid" class="display" width="100%" cellspacing="0"> 
<thead> 
    <tr> 
    <th>ID</th> 
    <th>Name</th> 
    </tr> 
</thead> 
</table> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#employee_grid').DataTable({ 
    "bProcessing": true, 
    "serverSide": true, 
    "ajax":{ 
    url :"get.php", // json datasource 
    type: "post", // type of method ,GET/POST/DELETE 
    error: function(){ 
    $("#employee_grid_processing").css("display","none"); 
    } 
    } 
    }); 
}); 
</script> 
+0

仍然没有修复 – John

回答

0

我通过改变javascript来解决它。

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#employee_grid').DataTable({ 
    "bprocessing": true, 
    "serverSide": true, 
     "ajax": { 
      "url": "post1.php", 
      "type": "POST", 
      "error": function(){ 
       $("#employee_grid_processing").css("display","none"); 
      } 
     }, 
     "columnDefs": [ { 
     "targets": 0, 
     "render": function (data, type, full, meta) { 
       return '<a href="http://www.example.com/'+data+'">Link</a>'; 
       } 
      } 
     ]    
    }); 
}); 
</script> 

此代码将与文本Link和第一列的原始结果替换第一列将在超链接中使用。

0

我认为你必须编写自定义mRender得到此链接。并在您的表头

$(document).ready(function() { 
    $('#employee_grid').DataTable({ 
    "bprocessing": true, 
    "serverSide": true, 
     "ajax": { 
      "url": "get.php", 
      "type": "POST", 
      "error": function(){ 
       $("#employee_grid_processing").css("display","none"); 
      } 
     }, 
     "columns": [ 
      { "data": "id" }, 
      { "data": "name" }, 
      { "data": "id", "render": function (data) { 
       return '<a href="http://domain.com/'+data+'">Link</a>'; 
       } 
      } 
     ]    
    }); 
}); 

PS请从您的代码中删除我的旧建议增加一个额外的 <th>Link</th>

+0

我没有得到超链接。表格未更改 – John

+0

数据网格中的行仍然没有超链接 – John

+0

请参阅我的第一篇文章中的编辑1' – John