I am using Drupal 10. I was trying to append a table row to a table from modal window, when submitted. I see its working one way or another, but the ajax links inside the content, not opening the modal window, just after the add. But if I refresh the page, then the links works but I want to make it work without page refresh.
I have prepared the content like this:
$shipping_row = '<tr id="rx-shipping-row-' . $paragraph->id() . '">';
$shipping_row .= ' <td><span id="rx-shipping-serial-' . $paragraph->id() . '">'.$sl_count.' <a class="rx-delete-shipping-link use-ajax" data-dialog-options=\'{"dialogClass":"rx-dialog", "width":"800"}\' data-dialog-type="modal" href="/rx/shipping/delete/' . $node->id() . '/' . $paragraph->id() . '/nojs"><i class="fa fa-minus-circle"> </i></a></span></td>';
$shipping_row .= ' <td><span id="rx-tracking-number-' . $paragraph->id() . '">' . ($paragraph->hasField('field_tracking_no')? $paragraph->get('field_tracking_no')->value : '') . '</span></td>';
$shipping_row .= ' <td><span id="rx-shipping-schedule-date-' . $paragraph->id() . '">' . ($paragraph->hasField('field_scheduled_date') ? date('Y-m-d', strtotime($paragraph->get('field_scheduled_date')->value)) : '') . '</span></td>';
$shipping_row .= ' <td><span id="rx-shipped-date-' . $paragraph->id() . '">' . ($paragraph->hasField('field_shipped_date') ? date('Y-m-d', strtotime($paragraph->get('field_shipped_date')->value)) : '') . '</span></td>';
$shipping_row .= ' <td><span id="rx-shipping-status-' . $paragraph->id() . '">' . ($paragraph->hasField('field_shipping_status') ? $paragraph->get('field_shipping_status')->value : '') . '</span>' . ($user->hasPermission('rx administer shipping') ? '<span id="rx-edit-shipping-status-' . $paragraph->id() . '"> <a class="rx-edit-shipping-status-link" href="/rx/shipping/edit/' . $node->id() . '/' . $paragraph->id() . '/nojs"><i class="fa fa-pencil"> </i></a> </span>' : '') . '</td>';
$shipping_row .= '</tr>';
I have used this to append the row like this:
$ajax_response->addCommand(new InvokeCommand('#rx-shipping tbody', 'append', [$shipping_row]));
This works, added the row, but ajax links are not working.
Then I try using another ajax command like this:
$ajax_response->addCommand(new AppendCommand('#rx-shipping-body-' . $this->nid, $shipping_row));
This way, ajax links are working but it removes the < tr > tag wrapper, as a result table layout breaks.
Can anyone help me on this issue?