Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Problema recupero dati da checkbox

    Ciao, premetto che non sono esperto e sto cominciando a impararlo adesso questo linguaggio.
    Ho un problema: ho un database e voglio fare una pagina che mi permetta di eliminare delle righe dal database. Visualizzo i dati in una tabella con un checkbox per ogni riga con il nome preso dal database (che corrisponde all'username). ll problema è che non ho idea di come recuperare quei dati essendo il nome dei checkbox preso in automatico dal database..

    Provo il codice che forse non mi sono spiegato bene..

    Codice PHP:
    if(isset($_GET["op"])) {$op=$_GET["op"];};
            
            if(
    $op=="cancella") {
            
    $database=odbc_connect("database","","") or die ("Impossibile");
            
            
    $utenti=odbc_exec($database,"select * from utenti");
            echo
    "<form method=\"POST\" action=\"utenti.php?op=cancellaok\">";
            echo
    "<table border=\"1\">";
            echo
    "
            <tr>
             <td>Seleziona</td>
             <td>Username</td>
             <td>Nome</td>
             <td>Cognome</td>
             <td>email</td>
            </tr>"
    ;
            while(
    odbc_fetch_row($utenti))
            {
            echo 
    "<tr> <td><input type=\"checkbox\" value=\"",odbc_result($utenti,"username"),"\" name=\"",odbc_result($utenti,"username"),"\"></td>";
            echo 
    "<td>",odbc_result($utenti,"username"),"</td>";
            echo 
    "<td>",odbc_result($utenti,"nome"),"</td>";
            echo 
    "<td>",odbc_result($utenti,"cognome"),"</td>";
            echo 
    "<td>",odbc_result($utenti,"email"),"</td>";
            echo 
    "</tr>";
            };
            echo
    "</table>";
            echo
    "<input type=\"submit\"";
            echo
    "</form>";
            
    odbc_free_result($utenti);
            
    odbc_close($database);
            
            };

            
    ?> 
    Grazie in anticipo

  2. #2
    Il nome dei checkbox non e' "preso in automatico dal database", e' preso dal database perche' gliel'hai detto tu
    I checkbox si chiamano come gli utenti. Un'idea migliore e' dare ai checkbox il nome di un array (tipo name="cancella[]") e come valore la chiave della tabella (che sia lo username, o un codice numerico, o qualunque cosa identifichi univocamente gli utenti). Poi nella parte di codice che processa i dati ricevuti dal form, avrai un array contenente i valori selezionati.

  3. #3
    Che velocità grazie!!
    Quindi dovrei scrivere tipo

    Codice PHP:
    cancella[odbc_result($utenti,"username")] 
    come nome del checkbox?

  4. #4
    Nono, lo chiami proprio cancella[]. Guarda questo esempio:

    Codice PHP:
    <?
    // file: checkboxarray.php

    if (isset($_POST['cancella'])) {
        echo 
    "<pre>";
        
    print_r($_POST['cancella']);
    }

    ?>

    <form action="checkboxarray.php" method="POST">
    <input type="checkbox" name="cancella[]" value="1">
    <input type="checkbox" name="cancella[]" value="2">
    <input type="checkbox" name="cancella[]" value="3">
    <input type="checkbox" name="cancella[]" value="4">
    <input type="checkbox" name="cancella[]" value="5">
    <input type="checkbox" name="cancella[]" value="6">
    <input type="submit">
    </form>

  5. #5
    Scusa la mia ignoranza..

    ho modificato il mio file così

    Codice PHP:
    <?php  
            
    if(isset($_GET["op"])) {$op=$_GET["op"];};
            
            if(
    $op=="cancella") {
            
    $database=odbc_connect("database","","") or die ("Impossibile");
            
            
    $utenti=odbc_exec($database,"select * from utenti");
            echo
    "<form method=\"POST\" action=\"utenti.php?op=cancellaok\">";
            echo
    "<table border=\"1\">";
            echo
    "
            <tr>
             <td>Seleziona</td>
             <td>Username</td>
             <td>Nome</td>
             <td>Cognome</td>
             <td>email</td>
            </tr>"
    ;
            while(
    odbc_fetch_row($utenti))
            {
            echo 
    "<tr> <td><input type=\"checkbox\" value=\"",odbc_result($utenti,"username"),"\" name=\"",utente[],"\"></td>";
            echo 
    "<td>",odbc_result($utenti,"username"),"</td>";
            echo 
    "<td>",odbc_result($utenti,"nome"),"</td>";
            echo 
    "<td>",odbc_result($utenti,"cognome"),"</td>";
            echo 
    "<td>",odbc_result($utenti,"email"),"</td>";
            echo 
    "</tr>";
            };
            echo
    "</table>";
            echo
    "<input type=\"submit\"";
            echo
    "</form>";
            
    odbc_free_result($utenti);
            
    odbc_close($database);
            
            };

            
    ?>
    ma mi da questo errore


    Parse error: parse error, expecting `','' or `';'' in C:\Program Files\EasyPHP 3.0\www\utenti.php on line 55

    e facendo finta che vada come recupero i dati dall'array utenti?

    Grazie mille x l'aiuto che mi stai dando..

  6. #6
    Ma perche' tutto quel pasticcio di virgolette?

    Codice PHP:
    name="utente[]" 

  7. #7
    Hai ragione avevo fatto una confusione pazzesca

    Adesso mi trovo la pagina con il nome del checkbox utente[] e con value l'username dell'utente.. Mi manca solo da sapere come recuperare i dati (con utenti.php?op=cancellaok) per poter fare la query di cancellazione..

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.