这可能还是我在浪费时间?
尝试了很多事情。
首先我拥有
$html = listings_swal()
是
function listings_Swal() {
return '<table id="datatable"><thead><tr><th>Col1</th><th>Col2</th></tr></thead>
<tfoot><tr><th>Col1</th><th>Col2</th></tr></tfoot></table>';
这只是没有内容的空表。
这是打开SweetAlert对话的目标链接:
<a id="listings">Listings</a>
和我的脚本:
echo "<script>
$('#listings').on('click', function(){
swal({
title: 'Listings',
html:'" . $html . "',
showCancelButton: false,
showConfirmButton: false,
showCloseButton: true}, function() {
$.ajax({
url: 'listings.js',
dataType: 'script'
})
.done(function(data) {
swal('Deleted!', 'our file was successfully deleted!', 'success');
})
.error(function(data) {
swal('Oops', 'We couldnt connect to the server!', 'error');
});
});
});
</script>";
在我的listings.js
文件中
我有标准的数据表初始化
$(document).ready(function() {
$('#datatable').dataTable({
.....
我尝试了一些没有成功的事情。
例如在甜言蜜语对话之后添加脚本
echo "<script>
$('#listings').on('click', function(){
swal({
title: 'Table',
html:'" . $html . "',
showCancelButton: false,
showConfirmButton: false,
showCloseButton: true
})
});
</script>";
echo '<script src="listings.js"></script>';
我也尝试过在我的Sweetalert脚本table.php
中执行php ajax返回,该脚本只有一个echo '<script src="listings.js"></script>';
我试图修改我的listings_Swal()函数,以便在结束</table><script src="listings.js"></script>
之后添加脚本。
如果不在sweetalert2对话框弹出窗口中,这一切都很好---并且sweetalert对话框确实有效,但是该表未填充DataTable内容(它只是显示<table><thead>
和<tfoot>
,没有从DataTable生成的表行。
我确信我的脚本可以正常工作,并且如果表行不在sweetalert2对话框和普通html表中,则可以填充它们,因此我对如何获取DataTables来初始化表行的加载感到困惑在甜蜜警报弹出窗口中。
不确定我还能尝试什么。 DOM无法识别用于初始化数据表的表吗?有人有什么想法吗?
谢谢!
编辑:澄清一下,正如我说的,sweetalert2对话框确实会弹出,只是没有用数据表的行填充它,并且没有显示console / js错误,所以我不确定如何调试。
答案 0 :(得分:0)
知道了。我想我必须将两者分开。依次执行SweetAlert命令(swal)和Datatable命令。
<script>
$(document).ready(function(){
$('#listings').on('click', function(){
Swal.fire({
title: 'Listings',
html: '<?php echo $html; ?>'
});
$('#datatable').DataTable( {
"processing": true,
"serverSide": false,
"ajax": "scripts/server_processing.php"
} )
});
});
</script>
按预期工作!