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

    Identificare cella di una tabella

    Salve, mi trovo attualmente davanti ad un problema che non riesco a risolvere.
    Ho creato una tabella contenente dati presi da un database, questa tabella presenta anche una colonna con un bottone che, se premuto, permette di cancellare dal database il record che si riferisce a quella riga della tabella.
    Esempio:

    Mario|Rossi|(tasto cancella)|
    Giuseppe|Verdi|(tasto cancella)|
    Luca|Bianchi|(tasto cancella)|

    Se per esempio verrà premuto il primo tasto di cancellazione dal database dovrà essere rimosso il record contenente le informazioni di mario rossi.
    La mia domanda è: come posso trasmettere alla pagina php un riferimento a quel record nel momento in cui viene premuto il bottone dal momento che non posso dare un identificativo a quel bottone creato in css?

    Grazie in anticipo, spero di esser stato chiaro.

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    il record di Mario Rossi ha un id univoco? se ce l'ha passagli quello.
    come è organizzata tabella del db?

  3. #3
    Quote Originariamente inviata da Vincent.Zeno Visualizza il messaggio
    il record di Mario Rossi ha un id univoco? se ce l'ha passagli quello.
    come è organizzata tabella del db?
    Si il record è identificato da una chiave primaria, ma il problema è proprio che quando clicco sul bottone css non posso sapere a quale riga si riferisce dal momento che stampando tramite un while tutto il contenuto della tabella del database e rappresentandolo in una tabella html non posso distinguere nel css un bottone dall'altro perchè non so di quanti bottoni avrò bisogno.
    Mi spiego con un esempio, io prima avevo quei tre record, in quel caso avrei potuto creare 3 classi che identificassero 3 bottoni diversi, ma quei tre record li ho stampati con un while perchè non sapevo quanti ce ne fossero nel database dal momento che se ne possono sempre aggiungere o togliere.

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    per me la stai facendo complicata, fai vedere questi bottoni

  5. #5
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    Tu dicisti: non posso dare un identificativo a quel bottone creato in css
    ma non credo proprio che sia lo STYLE a creare input fields (i bottoni) in quanto Elementi.

    Rimanendo alla via classica, questi bottoni intanto dovranno essere dei TYPE="Submit" che PHP riconoscerà dal NAME: sappiti ... sappilo ... sappisci che un FORM non è obbligato ad avere un unico Submit per l' INVIO.

    Mettiamo che la Tabella MySQL(i ?) abbia tre campi chiamati id, nome, cognome; tu farai stampare questo:
    codice:
    <?php
    
    // $con= /*connect to database*/
    
    $result = mysqli_query($con,"SELECT * FROM tabella");
    
    echo "<form method='get' action='path/page.php'><table border='1'>
    <tr>
    <th>Nome</th>
    <th>Cognome</th>
    <th>&nbsp;</th>
    </tr>";
    
    while($row = mysqli_fetch_array($result))
      {
      echo "<tr>";
      echo "<td>" . $row['nome'] . "</td>";
      echo "<td>" . $row['cognome'] . "</td>";
      echo "<td><input name='" . $row['id'] . "' value='elimina' type='submit'></td>";
      echo "</tr>";
      }
    echo "</table></form>";
    
    //mysqli_close($con);
    ?>
    Poi nella tua pagina di ricezione page.php (che può anche essere la stessa che ha generato il FORM) procederai con una query per eliminare la riga di records WHERE id= ... da vedere come recuperarlo; può tornarti più chiaramente fattibile avendo invece fatto stampare così:

    codice:
      echo "<td><input name='elimina[]' value='" . $row['id'] . "'  type='submit'></td>";
    Ultima modifica di Enzaccio; 07-12-2013 a 14:30

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    @enzaccio

    capisco la risposta e la sua correttezza

    ma questa è la sezione html, dobbiamo cercare di limitare le risposte (fin dove possibile) a questo linguaggio.
    se poi è necessario o spostiamo il thread o facciamo aprire un post nelle sezione adeguate.

    altrimenti diventa tutto una marmellata di post senza distinzione di sezioni

    questa volta lasciamo così, ma se si ripete mi toccherà rimuovere il post (come da regolamento)


    scusate l'OT, possiamo tornare in tema

  7. #7
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    Giusto; e anzi scusami te, ma avevo poco tempo e l' unica alternativa per il postulante pareva rimanere l' intervento di un esorcista.
    E lasciamo pure stare le [] in name="elimina[]" la raccolta in Array, ecc. .

    Il discorso è ottenere una pagina di FORM così:
    codice:
    <!DOCTYPE html PUBLIC>
    <html>
    <head><title>multiple submit 's to delete records row</title>
    
    <style type="text/css">
    input {
     background-color: #6699EE;
     
    }
    </style>
    </head><body>
    <div align="center"><form method="get" action="">
    
    <table border="0" cellpadding="2" cellspacing="1" bgcolor="#6699EE"><tr bgcolor="#AABBFF">
     <th>nome</th>
     <th>cognome</th>
     <th><small>elimina</small></th>
     </tr><tr bgcolor="#E3E3E3">
     <td>Mario</td>
     <td>Rossi</td>
     <td><input name="elimina" value="121" type="submit"></td>
     </tr><tr bgcolor="#E3E3E3">
     <td>Giuseppe</td>
     <td>Verdi</td>
     <td><input name="elimina" value="122" type="submit"></td>
     </tr><tr bgcolor="#E3E3E3">
     <td>Luca</td>
     <td>Bianchi</td>
     <td><input name="elimina" value="123" type="submit"></td></tr>
    </table></form>
    </div>
    
    </body>
    </html>

    I numeri progressivi verranno dagli id univoci quando estrai le righe dal database; e potranno anche esserci dei "buchi" (salti un numero) per righe già cancellate.

    Ora qui abbiamo una schiera di same-named Submit ma questo non crea discrepanze perché quando invii, col mouse uno solo ne puoi cliccare: dopo per PHP gli altri nemmeno esistono.
    Quindi avremo UNA variabile 'elimina' unica trasmessa al Server; che siccome nell' esempio uso il method="get" , vedi nella querystring appesa all' URL quando si ricarica la pagina: nomefile.htm?elimina=122

    Agli effetti di funzionare come FORM puoi averla salvata sia come pagina .php che .html .
    Resta il discorso che non ti piace avere il numero stampato sul bottone, te vorresi vederci scritto "elimina" o un "-" ma intanto vedi se ti ci ritrovi ad implementare questo.

    Lato Server, la recuperi e ci basi la query (solo un pezzeto, Vincent ...):
    codice:
    <?php
    
    $todelete=$_GET['elimina'];
    
    mysqli_query("DELETE FROM tabella WHERE id='$todelete'");
    
    ?>
    E se tralasci il WHERE ti cancella tutta la tabella, così ti levi l' impiccio.

    Ora si tratterebbe di vedere se proseguire/aprire nuovo thread in PHP ma non è detto: il delirio dell' indemoniato original poster su bottoni che hanno a che fare col CSS potrebbe anche far pensare a un fondo di verità (il demonio va saputo interpretare), identificare dalla CLASS o forse ancora meglio, da un ID assegnato alle TR; e allora sia per JavaScript/Ajax.

  8. #8
    Vi ringrazio per le risposte, credo il dubbio sia risolto, proverò ad implementare il codice.

  9. #9
    Il codice funziona perfettamente, persiste il problema che hai accennato precedentemente:
    Resta il discorso che non ti piace avere il numero stampato sul bottone, te vorresi vederci scritto "elimina" o un "-" ma intanto vedi se ti ci ritrovi ad implementare questo.

  10. #10
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Quote Originariamente inviata da mazza094 Visualizza il messaggio
    Il codice funziona perfettamente, persiste il problema che hai accennato precedentemente:
    <button name="elimina" value="123" type="submit">elimina</button>
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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.