Visualizzazione dei risultati da 1 a 4 su 4

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2023
    Messaggi
    17

    Problema con pulsante radio ed eliminazione riga.

    Ciao a tutti ho bisogno di aiuto per il codice che ho postato.


    Il codice nel contesto fa egregiamente il suo lavoro per l’eliminazione delle righe in base alla ricerca della prima parte del testo.
    In pratica se il testo contiene ad esempio:

    Arancia,aaa,rrr

    il programma ricerca la parola > Arancia < e da qui viene eliminata tutta la riga contenete la suddetta parola.
    Fino a qui tutto ok. L'eliminazione della riga viene effettuata tramite pulsante radio posto accanto alla riga.
    Una volta selezionata premendo l'apposito pulsante posto in basso, si elimina.

    Il MALFUNZIONAMENTO avviene solo quando si elimina l'ultima riga, o meglio la riga viene eliminata regolarmente e correttamente, ma rimane il pulsante radio anche se a sinistra non è più presente la riga effettivamente eliminata.

    Personalmente ho il dubbio che sia un problema di php versione 8.
    Prima di chiedere il vostro aiuto ho ribaltato una trentina di volte il codice, ma il risultato è sempre lo stesso, eliminazione ok, ma pulsante radio solo per l'ultimo elemento sempre presente anche dopo il delete.

    Perché succede questo?
    Come si può ovviare all'inconveniente?
    Grazie in anticipo.

    Il codice seguente è solo una piccola parte di un progetto più complesso.
    Il file deve avere come nome ---> prova.php
    codice:
    <!DOCTYPE HTML>
    <html lang="it">
        <head>
            <title>selezione - elimina - aggiungi</title>
            <style>
            table {
              font-family: verdana, sans-serif;
              /* border-collapse: collapse; */
              text-align: center;
              width: 450px;
              border: 1px solid black;
              td {
                border: 1px solid #dddddd;
                text-align: center;
                padding: 8px;
              }
              .styled {
              --width: 150px;
              --height: calc(var(--width) / 5);
              width: var(--width);
              height: var(--height);
              position: relative;
              display: inline-block;
              border: 0;
              padding: 0 15px;
              font-size: 15px;
              text-align: center;
              color: #fff;
              background-color: rgba(0, 0, 0, 1);
              }
            }
            </style>
        </head>
        <?php
        if(isset($_POST["delete_data"])){
            $filename = "data.txt";
            $riga = $_POST['delete'];
            $delete = $riga;
            $divider = explode(",", $riga);    // questa istruzione serve per prendere solo il primo elemento contenente il nome
            $delete = $divider[0];            // altrimenti non funziona correttamente
                if ($delete != "")  {         // Controlla se la stringa è vuota
                    eliminaLinea($filename,$delete);
                }
        }
        function eliminaLinea($file,$string)
        {
            // echo "-----a------";
            $i = 0; $j = 0; $array = array();
            $i = 0; $array = array();
        
            $read = fopen($file, "r") or die("can't open the file");
            while(!feof($read)) {
                $array[$i] = fgets($read);    
                // echo $array[$i]; echo "<br>";
                ++$i;    
            }
            // print '<pre>';        // Stampa gli array
            // print_r($array);
            // print '</pre>';
            fclose($read);
            echo "<br>";
            
            $write = fopen($file, "w") or die("can't open the file");
            foreach($array as $a) {
                if(!strstr($a,$string)) {
                    fwrite($write,$a);
                    // echo $a; echo "<br>";
                }
                 // echo $write; echo "<br>"; // questo stampa ---> Resource id #
            }
            // print '<pre>';        // Stampa gli array
            // print_r($array);
            // print '</pre>';
            fclose($write);
            }
        ?>
            
        <body>    
            <form action="prova.php" method="post">    
                <table>
                    <th style="width:70%">Dato da eliminare</th>
                    <th style="width:30%" >Seleziona</th>
                        <?php 
                        $f = @fopen('data.txt', 'r');
                        while(@!feof($f)){ 
                        $riga = fgets($f); 
                        // print '<pre>';        // Stampa gli array
                        // print_r($riga);
                        // print '</pre>';
                        ?>
                        <tr>
                            <td><?php echo $riga; ?>
                            </td> 
                            <td><input type="radio" name="delete" value="<?php echo $riga; ?>">
                            </td> 
                        </tr>
                        <?php    
                        }
                        ?>
                    <tr>
                        <td>
                            <input class="favorite styled" type="submit" name="delete_data" value="Elimina riga">
                        </td>
                        <td>
                        </td>
                    </tr>
                </table>
            </form>
        </body>
    </html>

    file di testo deve avere come nome ---> data.txt
    Il formato del teso deve essere così con il ritorno a capo per ogni riga, ogni riga ha come separatore la virgola.
    codice:
    Pesca,ppp,eee
    Arancia,aaa,rrr
    Mela,mmm,eee
    Susina.sss,uuu
    Albicocca,aaa,lll
    Anguria,aaa,nnn
    Frutto della passione.fff,rrr
    Pera.ppp,eee
    Ultima modifica di patdepri; 23-03-2024 a 22:42

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.