Datatbase table is not refresh after deleting the Row from the table
Datatbase table is not refresh after deleting the Row from the table
Link : https://justjammu.com/testrec/record.php
Steps:
1) On the page load of record.php, from AJAX page (record-extra.php) it will call DB and create Dynamic HTML then bind this HTML with html(worksHTML) with DIV element.
2) After the bind HTML, it will call the Database tables for the Pagination and Search columns.
3) Upto here, it is working fine.
4) There is a DELETE button with every row, on call of DELETE button it will AJAX page(record-del.php) it will call DB and DELETE from the table for that record. Then in JS it will remove that <tr> element.
5) Upto, here it is working fine. Then I am destroying the Database table and then call the ajax.refresh but it not showing NEW pagination and number of records.
Replies
After destroying the Datatable you are calling a function called
loadtable()
. All it is doing is initializing the Datatable but you are not fetching the updated data via Ajax. Possibly you need to callgetWorks()
instead.After destroying the Datatable you might also nee to use jQuery empty() to clear the table contents before reloading the table via ajax.
Kevin
Thank @kthorngren for your reply:
Yes, if I call getWorks() then it is working fine but I don't want to call ajax DB again for the select statement.
I want to delete the row from DB from PHP and then remove.<tr row> from JS level. No need to call DB PHP for the SELECT statement. Is it not possible to avoid SELECT statement?
It is possible but your step 5 indicated that you wanted to destroy the Datatable and reload the data via ajax.
Instead of using
destroy()
you could userow().remove()
. I think the easiest way, based on your call todel()
with theid
, is to userowId
with the setting ofid
. This will allow the use ofrow-selector
as the row id to get the proper row forrow().remove()
.Kevin
Thank you very much, @kthorngren. Your solution is working fine.
datatable.row($(doc).parents('tr')).remove().draw(); -- This is working where doc=this object
Now, another case.. If I am at 3rd page of the pagination and deleted the record from that page and after the delete using above command it is coming back to the first page instead of remaining at the same page. Is it possible to remain on the same page itself using above solution.
The
draw()
docs show options to control the paging. Likely you will want to passfalse
to stay on the same page but update the sorting and searching.Kevin
datatable.row($(doc).parents('tr')).remove().draw(false); -- This is working where doc=this object and I remained at the same page of the pagination. Also it also keep the column filtered as it, so that is good.
For instance, If I chose color "Re" it will fetch 4 records and If I delete one record then 3 will be shown and the value "Re" will remain in the text box of color filter and that is good.
I need to close this discussion and you have made my day. Thank you very much.
Hello @kthorngren , In the below link:
https://justjammu.com/testrec/record.php
The Excel button is not working and rest of buttons are working fine.