Serverside Processing Question
Serverside Processing Question
Hello Forum Member,
First of all, sorry for my bad English.
im using DataTables for a small Spareparts Stocksystem.
And i wanna add an Ordersystem to send an Email to our Salesman.
I need to add a Button with an Event "onclick=addtoCart('row_id')" i need to get the row_id.
I tried to modify the Serverside example but i wont get the result i need.
id-objects.php
// DB table to use
$table = 'shop';
// Table's primary key
$primaryKey = 'sID';
// Array of database columns which should be read and sent back to DataTables.
// The `db` parameter represents the column name in the database, while the `dt`
// parameter represents the DataTables column identifier - in this case object
// parameter names
$columns = array(
array(
'db' => 'sID',
'dt' => 'DT_RowId',
'formatter' => function( $d, $row ) {
// Technically a DOM id cannot start with an integer, so we prefix
// a string. This can also be useful if you have multiple tables
// to ensure that the id is unique with a different prefix
return 'row_'.$d;
}
),
array( 'db' => 'articlenumber', 'dt' => 'articlenumber' ),
array( 'db' => 'manunumber', 'dt' => 'manunumber' ),
array( 'db' => 'manufactor', 'dt' => 'manufactor' ),
array( 'db' => 'description', 'dt' => 'description' ),
array( 'db' => 'machine', 'dt' => 'machine' )
);
shop.php
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">Bestellen</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
<thead>
<tr>
<th>Artikelnummer</th>
<th>Herstellernummer</th>
<th>Hersteller</th>
<th>Beschreibung</th>
<th>Maschinenteil</th>
<th>Anzahl</th>
<th>Hinzufügen</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
JS inside shop.php:
$(document).ready(function() {
$('#dataTable').DataTable( {
"processing": true,
"serverSide": true,
"ajax": "ids-objects.php",
"columns": [
{ "data": "articlenumber" },
{ "data": "manunumber" },
{ "data": "manufactor" },
{ "data": "description" },
{ "data": "machine" },
{"data": null, "defaultContent": "<input class='form-control' id='unit' type='text' name='unit' value='0'></input>"},
{"data": "DT_RowId","render":function //<- Here i tried to add a button like above but it wont work
}}
]
} );
} );
Maybe you have a food for thought.
Greetings,
Zaickz
If someone dont understand my problem i will try to explain it a bit better
This question has an accepted answers - jump to answer
Answers
Hi Zaickz,
You should be able to do this:
Note that I've used a jQuery event handler rather than a DOM0 one. I'd suggest staying away from DOM0 (e.g.
onclick
) event handlers.Allan
Thanks for your answer.
Now i only have the text "row_xxx" in my column no button.
The Button will only appear when there is no data,right ?
Here are a couple examples of buttons that may help:
Uses
columns.render
:http://live.datatables.net/qemodapi/1/edit
Uses
defaultContent
:http://live.datatables.net/xijecupo/1/edit
Kevin