Copy unique id to another table with prior validation check if record already exists
Copy unique id to another table with prior validation check if record already exists
Hi All,
I would like to copy a specific cell with a unique id to another table. And I would like to have a validation check if the record already exists. If it exists already, a modal should pop up (with a 'Record already exists' message) and the process should be aborted. It would be great to have an inline button in the row of the record that copies the specific id to the other table.
Is this posssible and how? Does anybody have an example? I'm using Editor and DataTable and serverside.
Many thanks
This question has an accepted answers - jump to answer
Answers
I don't have an example of that as such I'm afraid, but it should be quite possible to do with the API - specifically
row().data()
to get the data for the row to copy,create()
to create it for the second table andremove()
to remove it from the first (all assuming that they are two different database tables and two different Editors?).Allan
Hi Allan, yes that's correct. I have 'two different database tables and two different Editors. Both with the same structure.
Table 1 ('all') has all the records and should stay the same ('no remove'). Table 2 ('portfolio') should be a kind of watch list in which records of Table 1 can be added and removed. What works so far is removing records from Table 2. But I can't pass data from Table 1 to Table 2. Plus, since Table 1 should stay the same, I want to make sure there are no duplicates in Table 2. So it would be great to have a kind of a validation prior to sending the data to Table 2. And if it already exist an modal pops up and aborts the process.
So you don't actually want to remove the row from a different database table and into another one? You just want to show it in a different client-side table?
If that's the case, particularly with server-side processing enabled, you would need to apply a condition to the first table to hide the row, and a connection to the second table to show it. Documentation on how to apply conditions to the PHP Editor code is available here. You'd probably need to pass information to the script to say what row(s) have been selected on the client-side to allow the filter to be correctly applied.
Allan
Thanks Allan. I got it working like this:
// Getting row data from table 1 when clicking on inline button of the row:
// Selecting the values of the columns (name & id) I was looking for:
// Sending values to table 2:
What I haven't figured out yet is the abortion if a record (id) already exists in table 2. Any hint? Do I need to work with https://editor.datatables.net/reference/api/val() ? Many thanks.
You'd probably need to use
column().data()
(or perhapsdata()
if the id isn't in a table column). That way you can get a list of ids that are in the second table and useindexOf
to see if the id in question is in there or not.Allan
Perfect. That worked. Thanks a lot.