Visualizzazione dei risultati da 1 a 10 su 17

Hybrid View

  1. #1
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    Lo scenario descritto non è troppo chiaro.

    Due punti in particolare:

    1) Non è chiaro se il tuo documento HTML, dove hai il form, sia creato in modo dinamico attraverso PHP oppure sia un file con estensione .html (quindi HTML statico).

    Di base, per poter "passare" delle variabili da PHP ad HTML è infatti necessario che il file stesso abbia estensione .php.
    Qual è la tua situazione?

    2) Trovo confusa la gestione dei dati. Riguardo i checkbox, non mi è chiaro il criterio che stai usando per determinarne lo stato (selezionato o non selezionato) attraverso quelle variabili.

    Nello specifico, per la prima variabile hai usato un solo valore "Example 1" per stabilire che il checkbox sia selezionato; bisogna poi capire che valore ci si debba aspettare nel caso in cui il checkbox debba essere impostato come non selezionato.
    Per la seconda variabile invece hai usato i due valori "ON" e "OFF" ad indicare rispettivamente lo stato selezionato e non selezionato di quel checkbox.

    Stai quindi usando due differenti approcci per poter ottenere un risultato comunque analogo su entrambe i casi.
    Dal momento che serve giusto sapere se far risultare selezionato o meno ciascun checkbox, non sarebbe meglio uniformare il tutto usando due valori convenzionali (ad esempio "1" e "0") per ciascuna variabile?

    Mi sfugge qualcosa?
    Nel caso, sarebbero opportuni dei chiarimenti.

    ---

    Supponiamo che il form sia creato attraverso PHP, avendo quindi un file con estensione .php, e che siano usate delle variabili con valori "1" o "0" per determinare lo stato di ciascuno dei checkbox.

    Nella costruzione del form potrai usare quelle variabili per impostare opportunamente il codice HTML in uscita.

    Per rendere selezionato un checkbox, non dovrai fare altro che specificare l'attributo checked direttamente nel tag <input>.

    Puoi quindi applicare questo attributo usando delle condizioni PHP.

    Qui un esempio minimo in base a quanto indicato:

    Codice PHP:
    <?php
    /* ...
       Qui ci sarà la parte dove recuperi i valori e ottieni le due variabili
       ...
    */
      
    $fixed_text_1 "1"// "1" o "0"
      
    $checkbox1 "1"// "1" o "0"
    ?>
    <!DOCTYPE HTML>
    <html lang="it">
      <head>
        <title>Esempio</title>
      </head>
      <body>
        <form>
          <input type="checkbox" name="fixed_text_1" value="Example 1" <?php if($fixed_text_1 == "1") echo "checked"?>> Example 1
          <label class="toggle">
            <input type="checkbox" name="checkbox1" <?php if($checkbox1 == "1") echo "checked"?>>
            <span class="labels" data-on="ON" data-off="OFF"></span>
          </label>
          <input class="favorite styled" type="submit" name="confirm" value="Enter data">
        </form>
      </body>
    </html>

    Chiaramente la questione può essere risolta in tanti altri modi.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2023
    Messaggi
    17
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Lo scenario descritto non è troppo chiaro...

    Prima di tutto ti ringrazio per le dritte fornite precedentemente.

    Avrei dovuto descrivere il tutto già da prima per spiegare il mio progetto.
    Lo faccio ora molto in sintesi.
    Questo codice che vedrai di seguito è solo una piccolissima parte del progetto generale che dovrà essere integrato con Arduino e microprocessori vari.
    Servirà per stampare su matrici a led scritte varie e per accendere e spegnere luci e molte altre cose ancora, ma questa non è la sede.
    Per cui il mio obiettivo è quello di inviare un file grezzo da far interpretare ad Arduino e famiglia di microprocessori con del testo separato da ";" che verrà interpretato appositamente per visualizzare scritte o inviare dati per accensioni e spegnimenti vari.
    Il file base è PHP index.php, appoggiato ad un file data.txt.
    Naturalmente se desideri testarlo devi creare un file data.txt contenente:

    0;0

    niente altro. Il file data.txt serve per recuperare gli stati e le scritte inserite precedentemente per evitare di rieditarle tutte, ci sono anche testi di lunghezza sino a 200 caratteri che NON ho messo nel codice che seguirà.
    Il codice in linea di massima funziona.
    Ho fatto delle modifiche al tuo per adattarlo alle mie esigenze e mi sembra che sin qui vada abbastanza bene (nota bene il testo fisso è stato trasformato come 1 o 0, attivato non attivato, ma mi va bene anche così.

    Col ricaricamento della pagina riesco a riprendere i valori introdotti precedentemente, e questo va bene, ma se chiudo la
    pagina e la riapro mi prende valori non corretti e vedo attive le opzioni.

    Non riesco a capire questo comportamento, ignora del tutto prima parte del file in php che dovrebbe ricaricarmi le variabile già immesse, dove sbaglio?
    Purtroppo non so fare di meglio, evidentemente sono proprio un principiante.

    Se hai la pazienza di guardare e sperimentare il mio codice ti ringrazio in anticipo.

    Tutto il codice ho dovuto metterlo sotto in 2 parti:
    Ultima modifica di patdepri; 04-12-2023 a 19:10

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2023
    Messaggi
    17
    codice HTML:
    <?php
        // Recupera i valori precedenti
        $myfile  = fopen("data.txt", "r") or die("Unable to open file!");
        $read = fread($myfile,filesize("data.txt"));
        echo "--- Ripristina Data ---<br><br>";
        $separator = ";";
        $divide = explode($separator, $read);
        echo $divide[0];    
        $fixed_text_1 = $divide[0];
        echo "<br>";
        echo $divide[1];
        $checkbox1 = $divide[1];
        echo "<br>";
    
        fclose($myfile);
    ?>
    <!DOCTYPE HTML>
    <html lang="it">
        <head>
            <title>Esempio</title>
    
        </head>
        <body> <font size="3" face="Verdana">
            <form action="index.php" method="post">
                <div style="overflow-x: auto;">
                    <table>
                        <tr>
                            <th>Table</th>        
                        </tr>
                        <tr>
                            <td>Fixed text</td>
                            <td>
                                <input type="checkbox" name="fixed_text_1" value="1" <?php if($fixed_text_1 == "1") echo "checked"; ?>> Example 1
                            </td>
                        </tr>
                        <tr>
                            <td>Toggle switch 1</td>
                            <td>
                                <label class="toggle">
                                    <input type="checkbox" name="checkbox1" <?php if($checkbox1 == "1") echo "checked"; ?>>
                                    <span class="labels" data-on="ON" data-off="OFF"></span>
                                </label>
                            </td>
                        </tr>
                        <tr>
                            <td>Submit data</td>
                            <td> 
                                <input class="favorite styled" type="submit" name="confirm" value="Enter data">
                            </td>
                        </tr>
                    </table>
                </div>
            </form>
        </body>
    </html>
    
    <?php
        if(isset($_POST["confirm"])){
            // echo "<br><br>--- Preview Enter Data ---<br><br>";
            if(isset($_POST["fixed_text_1"])){
                $fixed_text_1 = "1";
                // echo $fixed_text_1;
                // echo "<br>";
            } else {
                $fixed_text_1 = "0";
                // echo $fixed_text_1;
                // echo "<br>";
            }
            if(isset($_POST['checkbox1'])){
                $checkbx1 = "1";
                // echo $checkbox1;
                // echo "<br>";
            } else {
                $checkbx1 = "0";
                // echo $checkbox1;
                // echo "<br>";
            }
        } else {
            // Non fare nulla  -----------echo"<br>";
        }
        echo "<br><br>--- Enter Data ---<br><br>";
        echo $fixed_text_1."<br>".$checkbx1."<br>";
    ?>
    
    
    <?php
        /*azzera il file*/
        file_put_contents('data.txt', '');
    
        /*stampa a schermo il file*/
        echo "<br><br>--- Preview raw data loaded on data.txt ---<br><br>";
        echo $fixed_text_1."<br>".$checkbx1."<br>";
    
        $fp = fopen('data.txt', 'a');
    
        /*registra il file*/
        $all_data = $fixed_text_1.";".$checkbx1;
    
        fwrite($fp, $all_data,);
        fclose($fp);
    ?>
    Ultima modifica di patdepri; 04-12-2023 a 19:01

Tag per questa discussione

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