Ok, ora è più chiaro, grazie anche ai link che hai mostrato .
Riepilogo la situazione un'ultima volta per confermare che sia tutto corretto:
- hai dei form generati da un componente
- ogni form ha un id univoco
- vorresti che i valori di ciascun form fossero inviati ad una specifica pagina PHP
- la relazione tra gli id dei form e le pagine a cui inviare i dati è fissata a priori(ad es. il form con id "form_2" deve inviare a "stampa_richieste.php", quello con id "form_3" a "stampa_permesso_orario2.php")
- anziché un normale pulsante, utilizzi un link da te generato per indicare di inviare i dati del form
Una questione non ancora specificata è se vuoi che i dati dei form siano inviati tramite POST (come è indicato in quelli ad ora generati dal componente Joomla!), oppure tramite GET (come stai facendo al momento tramite il codice JavaScript). La differenza nei codice tra le due versioni è minima, basta saperlo. Per praticità assumo che vada bene utilizzare POST.
Il metodo più semplice è indicare a ciascun form che dovrà inviare i dati alla pagina PHP da te indicata. Poiché non puoi modificare il codice dei form, questo andrà fatto tramite JavaScript.
Il secondo passo consiste nell'indicare che i dati di ciascun form andranno inviati quando il link da te indicato sarà premuto.
Sia il form che il link saranno identificati dai loro attributi id. I form ne sono già provvisti, ai link dovrai aggiungerli tu.
Essendo due operazioni molto semplici, è ragionevole accorparle in un'unica funzione JavaScript:
Codice:
function redirectFormSubmit(form_id, action_url, button_id) {
$('#' + button_id).click(function(e) {
$('#' + form_id).attr('action', action_url)
.attr('target', '_blank')
.submit();
e.preventDefault();
return false;
});
}
questa funzione andrà salvata in un file JavaScript ed inclusa in tutte le pagine nelle quali sono presenti uno o più form di quelli che intendi gestire.
La funzione fa sì che, quando l'elemento il cui id è button_id viene cliccato, il form avente id form_id invia i propri dati alla pagina il cui indirizzo è action_url. Quest'ultimo può essere indicato come assoluto oppure relativo, esattamente allo stesso modo in cui imposteresti il campo action di un form.
Il tipo di richiesta effettuata è lo stesso indicato nel form, in questo caso POST (se hai necessità di usare GET si può modificare).
Per includere questa funzione nelle pagine puoi usare $document->addScript in maniera analoga a quanto hai fatto fin'ora.
Dopodiché, in ciascuna di queste pagine, dovrai invocare la funzione redirectFormSubmit per indicare link, form e pagina di destinazione da mettere in relazione.
Ad esempio, nella pagina http://www.plabruzzo.it/index.php/permesso-orario, il codice da utilizzare sarà:
Codice:
$(function() {
redirectFormSubmit('form_3', '/file%20modelli/stampa_permesso_orario2.php', 'link_3');
});
// NOTA: Non dimenticare di assegnare prima un id al link!
Non conoscendo Jommla!, non so quale sia il metodo "preferito" per inserire un frammento di script in una pagina, ma ce ne sarà sicuramente almeno uno.
Infine si tratta solo di sistemare le pagine PHP, che già sembrano andare bene.
Unico appunto, la funzione parsingFormData è corretta, ma un po' ridondante. Puoi sostituirla con questa:
Codice PHP:
function parsingFormData($name, $source = null) {
$source = is_array($source) ? $source : $_POST;
$data = isset($source[$name]) ? $source[$name] : null;
return (is_string($data) && strlen($data) > 0) ? $data : "..........";
}
Nel codice la potrai invocare come:
Codice HTML:
<p style="text-align: left;">
Il sottoscritto
<span style="font-weight: bold;"><?php echo parsingFormData('a_alfa___cognome', $_POST); ?></span>
<span style="font-weight: bold;"><?php echo parsingFormData('a_alfa___nome', $_POST); ?></span>
Comune di Nascita
<span style="text-align: right">
<strong><?php echo parsingFormData('a_alfa___comunenascita', $_POST); ?></strong>
</span>
</p>
Questo è il quadro generale. È piuttosto lungo, ma è più facile a farsi che a non a dirsi. Se hai problemi chiedi pure!