form invio multiplo con checkbox

giacomo9783

Utente Attivo
24 Ago 2016
99
0
6
41
salve a tutti,
ho cercato ininterrottamente sul web ma non ho trovato risposta al mi quesito.
Ho una tabella (TABELLA)1 dalla quale estraggo e stampo a video i campi CAMPO1 CAMPO2 CAMPO3. Inserisco accanto ad ogni result una checkbox; ora devo inserire in una altra tabella (TABELLA2) SOLO i result ai quali ho flaggato la rispettiva checkbox. Aiuto please perché davvero non so dove sbattere la testa

grazie a tutti
 
puoi visualizzare un form con all'interno una tabella con i campi valore e checkbox esempio
PHP:
 . "<td>"."<input type='text' name='OPma_valore[".$i."]' size='16'".formvalue($data[$i][4])." /></td>"
              . "<td>"."<input type='checkbox' name='OPma_ann[".$i."]' value='X' /></td>"
all'interno della tabella puoi "nascondere" valori che vengono usati per la gestione, esempio
PHP:
<td>"."<input type='hidden' name='OPca_nr[".$i."]' value='".$data[$i][7]."' /></td>"

1667048920267.png
 
Ultima modifica:
si ok, per visualizzare il risultato ci sono. E' l'invio dei SOLI valori a cui metto il flag che mi mette in crisi. Forse mi sono spiegato male. Mi rifaccio daccapo:

1) con una select e ciclo while stampo a video i result:

PHP:
$result = mysql_query("SELECT * FROM TABELLA")
or die(mysql_error());

$id = $row['id'];

echo '<td align="center" width="4%"><input type="checkbox" name="id" value="'.$id.'"></td>

su ogni riga, a sinistra del valore $id c'è una checkbox; da ora in poi devo fare in modo che, dopo aver selezionato le righe che voglio, vengano inviate (allo stesso file o ad un altro file) solo le variabili $id delle righe selezionate. Forse la mie spiegazione non è perfetta, ma chiedo venia perché in queste cose (che faccio a tempo perso e di cui non sono molto esperto) mi muovo a "sensazione"
 
Basta che ad ogni checkbox dai un name diverso e nel file a cui punta il form vai a controllare quali variabili sono arrivate dal form stesso, spero di essermi spiegato
 
Prova con il metodo della seconda risposta
 
Si ok ma c’è un problema: manca il tasto submit che invia contemporaneamente le variabili flaggate. Mi rendo conto che non è per nulla facile
 
Si ok ma c’è un problema: manca il tasto submit che invia contemporaneamente le variabili flaggate. Mi rendo conto che non è per nulla facile
Se gli ID li metti in un Array basta che con un foreach iteri la stampa delle checkbox. Poi fuori dall'iterazione inserisci l'echo del submit
 
Io non ho ompresa la domanda? Cioè che vuole dire voglio che vengano inviate solo le variabili "flaggate", se non dai il check, non viene inviato nulla e l'elemento checkbox ha valore nullo, cioè come se non esistesse.

Attenzione però, se nomini i checkbox come un array ( name="OPma_valore[]" ) puoi avere un problema in ricezione e mi spiego:

Se prendi i valori da una tabella di database, e ad esempio hai un elenco
HTML:
<input type="checkbox" name="OPma_valore[]" value="1">
<input type="checkbox" name="OPma_valore[]" value="2">
<input type="checkbox" name="OPma_valore[]" value="3">
<input type="checkbox" name="OPma_valore[]" value="4">
<input type="checkbox" name="OPma_valore[]" value="5">
<input type="checkbox" name="OPma_valore[]" value="6">

e mettiamo che clicco sui valori 2, 4 e 6, poi mi viene restituito il seguente array dall'HTTP:
PHP:
OPma_valore[0] = 2
OPma_valore[1] = 4
OPma_valore[2] = 6
Cioè come se non avessi mai avuto sei checkbox ma solo 3, gli altri non sono inviati in quanto se non faccio il check, non esistono per l'HTTP e quindi non trasmessi.

Spero di esserti stato utile.
 
Ultima modifica:
Funziona tutto?
si si, alla perfezione! posto qui sotto il codice, semplificato:

con il seguente codice (contenuto del file form.php) stampo a video tutti i record della tabella TABELLA1 e predispongo all'invio al file modulo.php, vale a dire che accanto ad ogni valore di $id compare la casella checkbox da flaggare se si vuole inviare a modulo.php il valore $id corrispondente

PHP:
$result = mysql_query("SELECT * FROM TABELLA1")
or die(mysql_error());

while($row = mysql_fetch_array($result))
{
$id = $row['id'];
    
<form method="post" action="modulo.php'">
    
echo "<p>'.$id.'<input type="checkbox" name="valori[]" value="'.$id.'"></p>";
    
}

<input type="submit" value="INVIA"/></span></form>

il cuore del file modulo.php è il seguente:

PHP:
$valori = $_GET['valori'];

$valori = isset($_POST['valori']) ? $_POST['valori'] : array();
foreach($valori as $valore)
{

echo "$valore";

}

dopo aver, nel file form.php, selezionato i valori da inviare al file modulo.php, cliccando su "INVIA" i valori flaggati vengono inviati in un unico invio e stampati a video. Chiaramente poi è possibile gestire a piacere ogni valore ricevuto; io, all'interno del foreach, ho inserito una INSERT perchè voglio che i valori selezonati vengano inseriti in una tabella
 
si si, alla perfezione! posto qui sotto il codice, semplificato:

con il seguente codice (contenuto del file form.php) stampo a video tutti i record della tabella TABELLA1 e predispongo all'invio al file modulo.php, vale a dire che accanto ad ogni valore di $id compare la casella checkbox da flaggare se si vuole inviare a modulo.php il valore $id corrispondente

PHP:
$result = mysql_query("SELECT * FROM TABELLA1")
or die(mysql_error());

while($row = mysql_fetch_array($result))
{
$id = $row['id'];
   
<form method="post" action="modulo.php'">
   
echo "<p>'.$id.'<input type="checkbox" name="valori[]" value="'.$id.'"></p>";
   
}

<input type="submit" value="INVIA"/></span></form>

il cuore del file modulo.php è il seguente:

PHP:
$valori = $_GET['valori'];

$valori = isset($_POST['valori']) ? $_POST['valori'] : array();
foreach($valori as $valore)
{

echo "$valore";

}

dopo aver, nel file form.php, selezionato i valori da inviare al file modulo.php, cliccando su "INVIA" i valori flaggati vengono inviati in un unico invio e stampati a video. Chiaramente poi è possibile gestire a piacere ogni valore ricevuto; io, all'interno del foreach, ho inserito una INSERT perchè voglio che i valori selezonati vengano inseriti in una tabella
Perfetto, spero di esserti stato utile
 
se torni a guardare il mio suggerimento, vedrai che restituisco l'array dei valori e quella della checkbox,
in modo da mantenere sincronia tra le due
nel mio esempio checkbox restituisce il valore "X" oppure null, facile fare il check per "X"
poi vedi tu, io preferisco avere codice consistente

ma forse non ho capito il tuo script ( nel caso, scusami )
 

Discussioni simili