Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Invio valori multipli checkbox

    Salve a tutti,

    ho la necessità di passare tramite post una serie di valori estrapolati da database mysql.
    Dato che il codice è autoesplicativo, lo posto sotto

    codice:
    $output = "<form name='renewals' action='index.php?page=00999' method='post'>";
    $output.="<table border='1'>";
    
    while ($riga=mysql_fetch_assoc($res_query))
      {
      $output.="<tr>";
      $output.="<td>";
      $output.="<input type='checkbox' name='cod' value='".$riga['cod']."'  />";
      $output.="</td>";
      $output.="<td>";
      $output.=$riga['nome'];
      $output.="</td>";
      $output.="<td>";
      $output.=$riga['cognome'];
      $output.="</td>";
      $output.="<td>";
      $output.=$riga['data_n'];
      $output.="</td>";
      }
    $output.="</table>";
    $output.="<input type='submit' value='Rinnova iscrizioni'/></form>";
    Naturalmente ho omesso la connection al db e la query, la quale non fa nient'altro che estrarre i tre valori menzionati nel codice.

    L'output di questo spezzone di codice è una tabella contenente per ogni riga una checkbox, nome, cognome e data di nascita.

    Quello che vorrei fare è questo: raggruppare tutti i valori 'cod' su cui l'utente mette il flag (in un array? nella stessa variabile separati da virgola?) e passarli ad un'altra pagina (che conterrà una query di aggiornamento, per la precisione).

    Mi sareste di grande aiuto.

    Vi ringrazio in anticipo!

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    non è cosa semplice.. ci ho perso un'oretta e ho fatto solo la prima fase, con i dovuti controlli..
    a che livello sei con php?

  3. #3
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    Ti metto il codice di una pagina con un form che ha 10 checkbox. All'invio del form, ti stampa l'array con i valori selezionati e la trasformazione dell'array con i valori selezionati in stringa, nonchè il riepilogo sul form con i check messi.

    A livello di query di aggiornamento, se ad esempio devi aggiornare la data, basta che fai un update del campo in tutti i record che hanno id IN (implode dell'array)

    Codice PHP:
    <html>
    <body>
    <?php
    if(isset($_POST['cod'])){
        print 
    "Stampa dell'array con i valori selezionati\n";
        
    print_r($_POST['cod']);
        print 
    "
    \n"
    ;
        print 
    "Valori selezionati in formato stringa: " .implode(', '$_POST['cod']). "\n";
        print 
    "
    \n"
    ;
    }
    ?>


    <form name="prova" method="post">
    <?
        
    for($x=$x<10 $x++){
            print 
    "<input type=\"checkbox\" name=\"cod[]\" value=\"$x\"";
            
    # seleziono il checkbox se era selezionato prima dell'invio del form
            
    if(is_array($_POST['cod']) && in_array($x$_POST['cod']))
                print 
    " checked";
            print 
    "> - $x
    "
    ;
        }
    ?>
    <input type="submit" value="Aggiorna">
    </form>
    </body>
    </html>

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    io credo che lui nella seconda pagina voglia stampati tutti i valori negli input text relativi agli id selezionati. modificare i valori e inviare la modifica.. carino il codice che hai messo comunque.. c'ero quasi pure io..

  5. #5
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    lui ha messo dei checkbox .. non degli input text

    da quello che ho capito io, seleziona X righe che vuole aggiornare (il cosa non si sa) ... e il suo problema era come recuperare i cod selezionati

    Se poi, ad esempio, dei record selezionati (cod) deve aggiornare il campo pippo (numerico) da 0 a 1 ... allora molto semplicemente...
    Codice PHP:
    $arr_selezionati $_POST['cod'];
    $strSQL "UPDATE nome_tabella SET pippo=1 WHERE cod IN (" .implode(","$arr_selezionati). ") AND pippo=0"
    ed esegue l'SQL

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    ..cacchio allora era facile..

    perdonatemi, delle volte vado trooooppo oltre..

  7. #7
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    anche nella tua ipotesi cmq era facile

    come vedi dandogli lo stesso nome ... ti ritrovi i campi inviati come array

    mentre scorrevi quelli chekkati .. verificavi in parallelo che alla posizione x dellìarray dei valori venissero soddisfatti i controlli

  8. #8
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    Originariamente inviato da Fichico
    anche nella tua ipotesi cmq era facile
    nnnnnnnniiii..
    mi sa che hai ragione.. è che con gli array ci ho litigato un po' di tempo fa.. mi tocca prenderli per le corna una volta per tutte..

  9. #9
    Grazie a tutti per le hint, provo immediatamente la soluzione array...

  10. #10
    Signori...

    Grazie mille! È bastato cambiare l'attributo name delle checkbox,

    codice:
    if ($res_query) { $output = "<form name='renewals' action='index.php?page=00999' method='post'>"; $output.= "Data pagamento: giorno<INPUT Type='text' size='2' Name= 'gg'> mese<INPUT Type='text' size='2' Name= 'mm'> anno<INPUT Type='text' size='4' Name= 'aaaa'>
     Per l'anno: <input Type='text' Name= 'anno' value= '2011'/> 
     Importo: <input Type='float' Name= 'amount' value= '35'> 
    "; $output.="<table border='1'>"; $x=0; while ($riga=mysql_fetch_assoc($res_query))   {   $output.="<tr>";   $output.="<td>";   $output.="<input type='checkbox' name='cod[]' value='".$riga['cod']."'  />";   $output.="</td>";   $output.="<td>";   $output.=$riga['nome'];   $output.="</td>";   $output.="<td>";   $output.=$riga['cognome'];   $output.="</td>";   $output.="<td>";   $output.=$riga['data_n'];   $output.="</td>";   $x++;   } $output.="</table>"; $output.="<input type='submit' value='Rinnova iscrizioni'/></form>";  }  echo $output;
    Vi devo un caffè

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.