Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57

    cancellare riga html dentro txt tramite checkbox

    Ciao a tutti. So che è argomento ampiamente discusso ma non sono riuscito a venirne fuori, sono alle prime armi con php...

    ecco il mio problema, ho un txt che scrivo tramite form in questo modo :

    Codice PHP:
    <div class="evento">[img]upload/orange.JPG[/img]<h3>3</h3>

    3</p></div>
    <
    div class="evento">[img]upload/dylan.jpg[/img]<h3>2</h3>

    2</p></div>
    <
    div class="evento">[img]upload/avatar.jpg[/img]<h3>1</h3>

    1</p></div
    poi richiamo il txt in un form e aggiungo una checkbox per ogni elemento in questo modo :

    Codice PHP:
    <?php

        $fileName 
    file ("../txt/news_ita.txt");
        
    $rows count ($fileName);
        
        print (
    "

    [b]Numero eventi pubblicati : " 
    . ($rows) . "[/b]</p>");
        
        for (
    $i=0$i $rows$i++)
        {
            echo 
    "<div><input type=\"checkbox\" name=\"myCheck[$i]\" value=\"[$i]\" />" . ($fileName [$i]) . "</div>";
        }
        
        
    /*$fileName = file ("../txt/news_eng.txt");
        $rows = count ($fileName);
        
        print ("

    [b]Numero eventi pubblicati : " . ($rows) . "[/b]</p>");
        
        for ($i=0; $i < $rows; $i++)
        {
            echo "<div><input type=\"checkbox\" name=\"myCheck[$i]\" id=\"value[$i]\" />" . ($fileName [$i]) . "</div>";
        }*/
     
    ?>

    e infine la pagina che dovrebbe cancellare la riga :

    Codice PHP:
    <?php

        
    //controllo se è settato o no il checkbox
        
        
    if (isset($myCheck))
        { 
            
    // controllo quali checkbox sono flaggati
            
            
    $myCheck $_POST['myCheck'];
            
            foreach (
    $myCheck as $key => $value
            {
                echo 
    "

    evento : 
    $key con valore : $value eliminato</p>" ;
            }
            
            
    // qui inserire codice per cancellare eventi
        
            
    $lista file("../txt/news_ita.txt") ; // inserisce le righe del file di testo in un array
            
    foreach ($lista as $key2 => $riga)
            {
              if (
    $key2 == $key)
              {

              unset(
    $lista[$key2]);  //svuota tutto l'array
              
              
    }
            }
            
            
    $fp =  fopen("../txt/news_ita.txt""w+");
                    
            
    fwrite($fp$lista);
            
    fclose($fp);
            
    print_r($lista) ; // visualizza l'array
            //print_r($_POST); // visualizza il check
            
              // fine codice per cancellare eventi        
            
            
    }
        
        else
        {
        
            echo 
    "\n" "

    Attenzione! Non hai selezionato i campi da cancellare!</p>" 
    "
    ;
        
        }    
    ?>

    praticamente riesco a visualizzare l'array giusto, ma non riesco a scrivere nel txt. Mi cancella tutto e mi scrive "array"...

    VVoVe:

    Sapete dirmi dove sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57
    ho aggiornato così :

    Codice PHP:
    <?php

        
    //controllo se è settato o no il checkbox
        
        
    if (isset($myCheck))
        { 
            
    // controllo quali checkbox sono flaggati
            
            
    $myCheck $_POST['myCheck'];
            
            foreach (
    $myCheck as $key => $value
            {
                echo 
    "

    evento : 
    $key con valore : $value eliminato</p>" ;
            }
            
            
    // qui inserire codice per cancellare eventi
        
            
    $eventi '../txt/news_ita.txt';
            
    $lista file($eventi); // inserisce le righe del file di testo in un array
            
    foreach ($lista as $key2 => $riga)
            {
                if (
    $key2 == $key)
                {
                
                unset(
    $lista[$key2]);
                
                }
            }
            
    $handle fopen($eventi'w');
            
    $lista implode('',$lista);
            
    fwrite($handle,$lista);
            
    fclose($handle);
            
    //print_r($lista) ; // visualizza l'array
            //print_r($_POST); // visualizza il check
            
            // fine codice per cancellare eventi
            
            
    }
        
        else
        {
        
            echo 
    "\n" "

    Attenzione! Non hai selezionato i campi da cancellare!</p>" 
    "
    ;
        
        }    
    ?>
    solo che mi fa cancellare un solo elemento alla volta. Come potrei fare ? un ciclo do...while?


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.