differeinziare form per scrivere su relative tabelle sql
-
Buon giorno a tutti,
Sto facendo un esperimento per poi inserirlo in aritcoli joomla attraverso il plugin sourcerer:
il mio intento è il seguente:
ho craeto un form principale con una select che contiene 3 option, la pagina, in base a queste mi visualizza un form con tre diverse tipologie di campi, in quanto poi il form invia tramite metodo post i dati ad una pagina che in base alla selezione principale (per intenderci, quella che mi visualizza i campi del form in maniera diversificata) mi va a inserire i dati nella relativa tabella sql.
In pratica la select mi differenzia la visualizzazione dello stesso form in tre modalità diverse perchè i campi del form sono delle input diversificate;
ma alla fine quando viene cliccato il submit, alla pagina impostata nell'attributo action oltre ad arrivare l'array $post con i valorii inviati, devo poter recuperare anche il valore della select principale per usarla nell'impostazione della query insert into.
Sperando di essere riuscito a spiegarmi chiedo...
Come recupero il valore della prima select ?
Questo è il codice del form<div class="form"> <div class="titolo_form">FORM DI INSERIMENTO BOLLETTE</div> <form action="" method="POST"> <table> <tr> <td> <label for="selezione-utenza"> Seleziona il tipo di utenza <label> </td> <td> <select name="utenza" id="" required> <option value="">scegli il tipo di utenza</option> <option value="acqua">acqua</option> <option value="gas">gas</option> <option value="elettricità">elettricità</option> </select> </td> <td> <input class="invio" type="submit" name="seleziona" value="visualizza il form"> </td> </tr> </table> </form> </div> <?php $utenza=$_POST["utenza"]; /*var_dump($utenza); echo $utenza;*/ ?> <div class="form"> <table> <form action="scrittura_bolletta.php" method="post"> <?php echo $utenza; if ($utenza==="acqua"){ echo" <div class=\"titolo_form\">Inserimento dati bolletta acqua</div> <tr> <td class=\"labinput\"> <label for=\"data-emissione\"> Data emissione </label> </td> <td> <input type=\"date\" name=\"data_emissione\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"cons_fat_mc\">Consumo fatturato (mc)</label> </td> <td> <input type=\"text\" name=\"cons_fat_mc\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"prezzo_€\">Prezzo unitario (€)</label> </td> <td> <input type=\"text\" name=\"prezzo_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"sps_mat_€\">Spesa materiale (€)</label> </td> <td><input type=\"text\" name=\"sps_mat_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"altri_oneri_€\">Altri oneri (€)</label> </td> <td> <input type=\"text\" name=\"altri_oneri_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"conguagli_€\">Conguagli (€)</label> </td> <td> <input type=\"text\" name=\"conguagli_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"imp_fat_€\">Importo fattura (€)</label> </td> <td> <input type=\"text\" name=\"imp_fat_€\" id=\"\" required> </td> </tr> <tr> <td colspan=\"2\" class=\"invio\"> <input type=\"submit\" name=\"invia\" value=\"inseirsci bolletta\"> </td> </tr> ";} elseif($utenza==="gas"){ echo" <div class=\"titolo_form\">Inserimento dati bolletta gas</div> <tr> <td class=\"labinput\"> <label for=\"data-emissione\"> Data emissione </label> </td> <td> <input type=\"date\" name=\"data_emissione\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"cons_fat_mc\">Consumo fatturato (mc)</label> </td> <td> <input type=\"text\" name=\"cons_fat_mc\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"prezzo_€\">Prezzo unitario (€)</label> </td> <td> <input type=\"text\" name=\"prezzo_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"sps_mat_€\">Spesa materiale (€)</label> </td> <td> <input type=\"text\" name=\"sps_mat_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"altri_oneri_€\">Altri oneri (€)</label> </td> <td> <input type=\"text\" name=\"altri_oneri_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"conguagli_€\">Conguagli (€)</label> </td> <td> <input type=\"text\" name=\"conguagli_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"imp_fat_€\">Importo fattura (€)</label> </td> <td> <input type=\"text\" name=\"imp_fat_€\" id=\"\" required> </td> </tr> <tr> <td colspan=\"2\" class=\"invio\"> <input type=\"submit\" name=\"invia\" value=\"inseirsci bolletta\"> </td> </tr> ";}elseif($utenza==="elettricità"){ echo" <div class=\"titolo_form\">Inserimento dati bolletta elettricità</div> <tr> <td class=\"labinput\"> <label for=\"data-emissione\"> Data emissione </label> </td> <td> <input type=\"date\" name=\"data_emissione\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"cons_fat_kwh\">Consumo fatturato (kw/h)</label> </td> <td> <input type=\"text\" name=\"cons_fat_kwh\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"prezzo_€\">Prezzo unitario (€)</label> </td> <td> <input type=\"text\" name=\"prezzo_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"sps_mat_€\">Spesa materiale (€)</label> </td> <td> <input type=\"text\" name=\"sps_mat_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"altri_oneri_€\">Altri oneri (€)</label> </td> <td> <input type=\"text\" name=\"altri_oneri_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"conguagli_€\">Conguagli (€)</label> </td> <td> <input type=\"text\" name=\"conguagli_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"imp_fat_€\">Importo fattura (€)</label> </td> <td> <input type=\"text\" name=\"imp_fat_€\" id=\"\" required> </td> </tr> <tr> <td colspan=\"2\" class=\"invio\"> <input type=\"submit\" name=\"invia\" value=\"inseirsci bolletta\"> </td> </tr> ";} ?> </form> </table> </body>
i campi della condizione if e della prima ifelse sono gli stessi e quindi posso ottimizzare il codice in effetti, ma nn importa per il momento, a me interessa sapere come portarmi dietro la variabile $utenza col suo valore perchè poi dovrà essere quello che mi permetterà di scrivere nella tabella mysql "acqua", "gas" oppure "elettricità".
Con la speranza di esser riuscito a spiegarmi,
Vi ringrazio fin da ora per le eventuali indicazioni
Buona giornata a tutti
Filippo P. -
Ciao, spero di aver capito e provo a risponderti.
Tu hai due <form> differenti, se mandi la seconda form tramite l'action non potrai mai prendere i valori del primo form perchè proprio a livello di funzionamento dell'HTML i dati inviati sono quelli del form che esegue l'action.Secondo me la risolvi facilmente inserendo un input di tipo "hidden" nel secondo form, mettendoci quello che catturi via PHP, una cosa di questo tipo:
<?php $utenza=$_POST["utenza"]; /*var_dump($utenza); echo $utenza;*/ ?> <form action="scrittura_bolletta.php" method="post"> <!-- Campo nascosto per passare il tipo di utenza --> <input type="hidden" name="utenza" value="<?php echo $utenza; ?>" /> ... qui ci metti tutto il resto del form ... </form>
in questo modo dentro
scrittura_bolletta.php
puoi recuperare normalmente la variabile:$utenza = $_POST['utenza'];
che sarà uguale ad "acqua", "gas" o "elettricità". Poi la gestisci come meglio credi.
Ciao! -
Ok. Grazie 1000 stasera provo.
In effetti cercavo proprio un modo per passare quel dato... Mi sa che dovrebbe proprio funzionare.
In pratica ho una input invisibile e che è già compilata e che viene passata come ogni altra chiave-valore nell'array $post.
Un super grazie.Filippo
-
@jabba ha detto in differeinziare form per scrivere su relative tabelle sql:
che sarà uguale ad "acqua", "gas" o "elettricità". Poi la gestisci come meglio credi.
Non ha alternative, la deve per forza pagare