1
データテーブルの最初の行のみが自分のvar selを受け取ります。データテーブルのみ最初の行はjqueryを受け取ります。
varはHTMLドロップダウンから値が与えられます。最初の行の印刷ボタンをクリックすると、varにURLが渡されます。選択オプションを変更すると、varが更新されます。
他の行をクリックすると、varは定義されていません。
<script type="text/javascript">
function datatableHandler (sel)
{
$('#workorder').DataTable().destroy();
var table = $('#workorder').DataTable({
//display columns
"columns": [
//display action buttons
{"mData": "idWorkOrder",
"mRender": function (data, type, row) {
return '<a href="print.php?idWorkOrder='+row.idWorkOrder+'&pages='+sel+'" data-toggle="tooltip" title="PRINT" target="_blank"><button class="btn btn-info btn-sm"><span class="glyphicon glyphicon-print" aria-hidden="true"></span></button></a>'+
'<a href=update.php?idWorkOrder='+row.idWorkOrder+' data-toggle="tooltip" title="EDIT"><button class="btn btn-warning btn-sm"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></button></a>'+
'<a href=delete.php?idWorkOrder='+row.idWorkOrder+' data-toggle="tooltip" title="DELETE"><button class="btn btn-danger btn-sm"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button></a>';
}
},
{"data": "cFirstName"},
{"data": "cLastName"},
{"data": "wRoofContract", render: $.fn.dataTable.render.number(',', '.', 0, '$')},
{"data": "wSidingContract", render: $.fn.dataTable.render.number(',', '.', 0, '$')},
{"data": "wGutterContract", render: $.fn.dataTable.render.number(',', '.', 0, '$')}
],
"processing": true,
"serverSide": true,
"responsive": true,
"ajax": {
url: 'datatables.php',
type: 'POST'
}
});
table.draw(false);
}
$(document).ready(function() {
$('#multipleSelect').on('change', function() {
sel = $(this).val();
console.log(sel);
datatableHandler (sel);
});
$('#workorder').DataTable().destroy();
var table = $('#workorder').DataTable({
//display columns
"columns": [
//display action buttons
{"mData": "idWorkOrder",
"mRender": function (data, type, row) {
sel=1;
return '<a href="print.php?idWorkOrder='+row.idWorkOrder+'&pages='+sel+'" data-toggle="tooltip" title="PRINT" target="_blank"><button class="btn btn-info btn-sm"><span class="glyphicon glyphicon-print" aria-hidden="true"></span></button></a>'+
'<a href=update.php?idWorkOrder='+row.idWorkOrder+' data-toggle="tooltip" title="EDIT"><button class="btn btn-warning btn-sm"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></button></a>'+
'<a href=delete.php?idWorkOrder='+row.idWorkOrder+' data-toggle="tooltip" title="DELETE"><button class="btn btn-danger btn-sm"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button></a>';
}
},
{"data": "cFirstName"},
{"data": "cLastName"},
{"data": "wRoofContract", render: $.fn.dataTable.render.number(',', '.', 0, '$')},
{"data": "wSidingContract", render: $.fn.dataTable.render.number(',', '.', 0, '$')},
{"data": "wGutterContract", render: $.fn.dataTable.render.number(',', '.', 0, '$')}
],
"processing": true,
"serverSide": true,
"responsive": true,
"ajax": {
url: 'datatables.php',
type: 'POST'
}
});
table.draw(false);
});
</script>
私は1週間この作業をしています。ドロップダウンから選択するまでテーブルが表示されないという事実を除いて、すべてが機能します。しかし、sel値は正しく渡されます。 –
これは動作するようです。助言がありますか?上記のコードを更新しました。 –
@NicholasRoederありがとうございました。 datatableHandler(sel);この関数ドキュメントを準備して、データテーブルを表示できるようにすることができます。 –