Tu invii tramite POST la variabile rId a modal.php (anche se poi di fatto invii una stringa con all'interno anche rId), dopo richiami modal.php per caricarne il contenuto dentro al modal.
Il problema è che lo stato di modal.php non è persistente, tu lo chiami 2 volte, la prima in cui la variabile rId è settata tramite ajax dal tuo script, la seconda in cui non lo è, perché di fatto richiami solo il codice della pagina senza passare dati.
La funzione $.load() supporta anche l'invio dei dati (tramite POST se il secondo parametro è un oggetto) alla pagina che viene caricata, potresti fare così:
codice:
function subModal(rId){
$("#myModal").on("show.bs.modal", function(e) {
var link = $(e.relatedTarget);
$(this).find(".modal-body").load(link.attr("href"));
});
if (confirm("Rispondi?")){
$("#modalPag").load("modal.php", { "id" : rId }); }
else{
return;
}
}
E dovrebbe funzionare (anche se non ho provato).
Se vuoi farlo utilizzando $.ajax() allora devi fare in modo che modal.php ti restituisca come risposta alla chiamata ajax il codice html che vuoi inserire nella modal, e a quel punto caricarlo nella modal, magari tramite la funzione $.html()