我的问题是前一个问题的后续行动: How to display a hyperlink in a cell with jQuery DataTables
还有一个小提琴链接provided
我现在有同样的问题,除了我的数据源是Mysql数据库表。
本质上,我现在正在努力实现“链接的渲染”,而源“数据”来自Mysql表(例如,在前面的例子中链接的值“5555”和“5554”是值在mysql表中的单元格中。)
我的理解(或实际假设)是这里的关键在于之前提供的javascript部分(“数据”源参考以及“渲染”部分):(以下仅是“本地数据源”)在上一个答案中提供的示例,这不是我使用的代码,我的代码在下面第二步)
$(document).ready(function (){
var data = [["5555","07/17/2010","RCC Saturday Open","E10","Harris, Fred","1900","Nikolayev, Igor (FM)","2367","1-0"],["5554","07/17/2010","RCC Saturday Open","B01","Nikolayev, Igor (FM)","2367","Motroni, Richard","1728","1-0"]];
var table = $('#example').DataTable({
data: data,
columnDefs: [
{
targets:0,
render: function ( data, type, row, meta ) {
if(type === 'display'){
data = '<a href="basic.php?game=' + encodeURIComponent(data) + '">' + data + '</a>';
}
return data;
}
}
]
});
});
以下是我正在使用的基本代码,我需要将“数据位置数据”和“渲染”部分合并到一起,以使超链接正常工作:
function fetch_data()
{
var dataTable = $('#user_data').DataTable({
"processing" : true,
"serverSide" : true,
"ajax" : {
url:"fetch.php",
type:"POST"
}
});
我的数据获取部分通过“fetch.php”运行良好,但我不知道如何实现工作链接,因为在我的情况下数据源是外部mysql表。
编辑:原始问题已解决。谢谢@Charlietfl!
编辑2:关于“GET”类似的传递变量在链接上的相似性的一个后续问题与通过“POST”可能相同吗?所以链接不会出于安全目的而成为可收藏的?
答案 0 :(得分:0)
使用外部数据源与使用JavaScript源数据没有什么不同,只需删除data
选项并将其替换为ajax
选项。
请注意,在POST请求中隐藏变量不会以任何方式提高安全性。可以在控制台中检查任何请求。
此外,只有在从原始页面访问时才有其他方式显示目标页面,例如检查引荐来源或使用会话cookie。
但是,您可以创建一个隐藏的表单并POST到页面,如下所示。
var table = $('#example').DataTable({
ajax: {
url: 'https://api.myjson.com/bins/qgcu'
},
columnDefs: [
{
targets:0,
render: function ( data, type, row, meta ) {
if(type === 'display'){
data = '<a class="link-post" href="https://www.gyrocode.com/">' + data + '</a>';
}
return data;
}
}
]
});
// Handle click on link in the table
$('#example').on('click', '.link-post', function(e){
e.preventDefault();
// Get row data
var data = table.row($(this).closest('tr')).data();
var form = $('#frm-main').get(0);
// Update form action URL if needed
form['action'] = this.href;
// Set required form parameters
form['name'].value = data[0];
// Submit form
form.submit();
});
请参阅this example以了解如何实施此功能。