Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    31

    Cancellare checkbox solo in php

    Ciao, scusate dopo giorni di prove e ricerche nel forum non ho risolto il mio problema e vi chiederei direttamente un aiuto.
    Ho un file php che mi mostra il contenuto della cartella dei file caricati in ordine numerico e ad ogni voce corrisponde un checkbox.
    Vorrei inviare con form post la selezione tramite check di più file da eliminare contemporaneamente, ma il file php mi cancella solo un file.
    Leggendo vari post sul forum ho capito che devo fare un controllo dei file caricati ma non so dove inserire il codice. Notare è tutto in php non sto lavorando con collegamenti a record di database e mysql

    Vi posto i due file php. Grazie

    <?
    /* file che mostra il contenuto con un checkbox relativo ad ogni voce elencata numericamente */
    $dl = "http://www.sitename.net/lista_ordinata/carica_scarica";
    $absolute_path = "./lista_ordinata/carica_scarica";
    $dir = "dir";
    $i=1;

    $list = "<form name=\"elimina_file\" method=\"post\" action=\"cancella.php\">
    <table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"8\">";
    $list .= "<tr><td>Download:</td></tr>";
    $dir = opendir($absolute_path);
    while (($file = readdir($dir)) !== false) {
    if ($file != ".." && $file != ".") {
    $list .= "<tr><td><a href=$dl/$file>$i) $file </a><input type=\"checkbox\" name=\"selezione\" value=\"$file\" /></td></tr>";
    $i++;
    }
    }
    $list .= "</table><input name=\"canc\" type=\"submit\" value=\"Elimina\"></form>";
    echo $list;
    ?>

    -------------------------------

    <?php
    /* file che cancella.php */
    $nome_file="lista_ordinata/carica_scarica";
    if (!file_exists($nome_file)) {
    echo "Spiacente, non posso trovare il file $nome_file";
    } else {
    if (!unlink($nome_file)) {
    echo "$PHP_SELF: Errore, impossibile cancellare il file $nome_file";
    echo "Controllalo!";
    } else {
    echo "Il file $nome_file è stato cancellato";
    }
    }
    ?>



    Grazie
    errepi71@hotmail.com

  2. #2
    Non so se è giusto, bisognerebbe provare, ma a intuito dovresti aggiungere una cosa:

    Codice PHP:
    <input type=\"checkbox\" name=\"selezione[]\" value=\"$file\" /> 
    L'aggiunta delle parentesi quadre al nome della checkbox dovrebbe creare un array, che potrai gestire nella pagina che riceve la selezione via POST.
    Spero di essermi spiegato e di non aver sbagliato...
    Lo scoppato
    andrea@progettipercomunicare.it
    www.progettipercomunicare.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    31
    Sì, grazie intanto, questo lo avevo letto cercando nei vari post del forum, ma non saprei come e dove porre l' array di controllo nello script "che elenca i file" e nello script che dovrebbe cancellare le selezioni del check. Riesci tu o qualcun altro a farmi un esempio applicato ai miei script?

    Grazie ancora
    errepi71@hotmail.com

  4. #4
    in teoria la pagina che riceve i dati (tramite POST), riceverà il valore di ciascuna scheckbox selezionata, questo significa che puoi conoscere i file selezionati, visto che nella checkbox l'attributo value contiene il valore del file corrispondente.
    La prima cosa che mi viene in mente è usare un ciclo for per scorrere tutti gli elementi dell'array e quindi avere il valore di ciascun elemento.
    Lo scoppato
    andrea@progettipercomunicare.it
    www.progettipercomunicare.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    31
    Giusto ho letto nei vari post del forum che bisogna fare un ciclo per prendere gli elementi dell'array
    ma scusami non so bene come applicare la cosa ti posto le modifiche con array e ciclo
    che però mi danno errore nel primo script alla riga 4 ( Warning: Invalid argument supplied for foreach() )
    e nel secondo alla riga 13 ( Parse error: syntax error, unexpected $end ).
    Riuscite a darmi una mano, forse penso che potrebbe essere utile anche ad altri visto che è uno script php che non ricorre a database e mysql

    <?
    /* file che mostra il contenuto con un checkbox relativo ad ogni voce elencata numericamente */

    foreach ($file_array as $file) {

    continue;
    }
    $dl = "http://www.sitename.net/lista_ordinata/carica_scarica";
    $absolute_path = "./lista_ordinata/carica_scarica";
    $dir = "dir";
    $i=1;

    $list = "<form name=\"elimina_file\" method=\"post\" action=\"cancella.php\">
    <table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"8\">";
    $list .= "<tr><td>Download:</td></tr>";
    $dir = opendir($absolute_path);
    while (($file = readdir($dir)) !== false) {
    if ($file != ".." && $file != ".") {
    $list .= "<tr><td><a href=$dl/$file>$i) $file </a><input type=\"checkbox\" name=\"elimina[]\" value=\"$file\" /></td></tr>";
    $i++;
    }
    }

    $list .= "</table><input name=\"canc\" type=\"submit\" value=\"Elimina\"></form>";
    echo $list;

    ?>

    -------------------

    <?php
    /* file per eliminare cancella.php */
    $nome_file="lista_ordinata/carica_scarica";
    if (!file_exists($nome_file)) {
    echo "Spiacente, non posso trovare il file $nome_file";
    } else {
    foreach ($_POST['elimina'] as $elimina){
    if (!unlink($nome_file)) {
    echo "$PHP_SELF: Errore, impossibile cancellare il file $nome_file";
    echo "Controllalo!";
    } else {
    echo "Il file $nome_file è stato cancellato";
    }
    }

    ?>
    errepi71@hotmail.com

  6. #6
    ...scusa, ma ho poco tempo di controllare gli script.
    Da una veloce lettura non vedo dove richiami l'array del checkbox, nel codice lo chiami selezione[], perchè non c'è nei due script?
    Lo scoppato
    andrea@progettipercomunicare.it
    www.progettipercomunicare.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    31
    Se guardi l'ultimo post che ho mandato dove ho riproposto il codice dei due file con "presunto array da me inserito ho chiamato il check elimina[]

    Comunque se quando hai tempo dai un'occhiata al codice mi fai un favore, perché non ho trovato alcun esempio simile fatto solo in php che che faccia cancellazione multipla.
    errepi71@hotmail.com

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 © 2024 vBulletin Solutions, Inc. All rights reserved.