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

    Assegnare un nome ad una casella input

    Salve, ho un piccolo problema con il codice php, mi spiego meglio.
    Ho del codice che apre un file txt, legge il contenuto riga per riga, crea una casella di testo input e inserisce al suo interno il dato recuperato.
    Il mio problema è che non riesco ad assegnare ad ogni casella input un nome univoco.
    Questo è il codice:


    // In precedenza c'è l'istruzione per aprire il file
    $contatore="1"; //questo mi serve per dare un nome univoco alle caselle input
    while(! feof($file)) //fa un ciclo fino alla fine del file
    {
    $dato=fgets($file); //Recupera i dati
    echo "<input type='text' name='dal'.$contatore size='2' value=$dato // Vedere descrizione sotto
    $contatore++; //incrementa di 1 il contatore
    } //va avanti fino alla fine del file
    fclose($file); // Chiude il file

    echo "<input type='text' name='dal'.$contatore size='2' value=$dato // con questa riga vorrei che ad ogni ciclo la casella input assuma un nome diverso ogni volta e per fare questo pensavo di associare il nome della casella "dal" al numero del contatore in modo da avere i seguenti nomi per le caselle che si creeranno: dal1, dal2, dal3, ecc.
    Questo codice è incapsulato in una form, al cliccare sul bottone submit, viene aperto un'altro file php che si occuperà di recuperare i dati nelle caselle input, cio non funziona e ho i miei dubbi nell'aver commesso qualche sbaglio su questa istruzione:
    name='dal'.$contatore
    Mi sapete dire come posso fare?
    Spero di essere stata abbastanza chiara.
    Grazie.
    Mariastella

  2. #2
    fai così:
    <input type="text" name="rigo_file[2]" value="testo filtrato con htmlentities ENT_QUOTES" />

  3. #3
    Ti ringrazio ma ho difficoltà a capire il codice che mi hai mandato.
    Mi potresti spiegare qualcosa?
    Devo capire in quanto, poi, mi tocca recuperare i dati inseriti nelle caselle input da un altro file.
    Cos'è name="rigo_file[2]" ?
    Come mai mi hai toccato anche il campo value?.
    Ciao e grazie mille.
    Mariastella

  4. #4
    riceverai un array con chiavi numeriche che per essere univoche dovranno essere gli id di ciò che stampi.

    ad esempio se gli input dinamici sono generati dinamicamente tramite query SELECT verrà una cosa di questo genere:
    Codice PHP:
    $query "SELECT id, valore FROM tabella";
    $result mysql_query($query) or die(mysql_error());
    while(
    $row=mysql_fetch_array($result))
       {
       echo 
    '<input type="text" name="campo[' .$row['id']. ']" value="' .htmlentities($row['valore'],ENT_QUOTES). '" />';
       } 
    Per capire cosa riceverai al submit fai:
    Codice PHP:
    print_r($_POST['campo']); 
    sarà un array con chiavi numeriche corrispondenti agli id

  5. #5
    Innanzitutto ti ringrazio della risposta, ma non è quella che mi aspettavo.
    Purtroppo non ho database ne tabelle, i dati vengono presi da un semplice file di testo.
    Sicuramente sono stata io poco chiara per cui riformulo la mia domanda con un esempio un po più facile, poi tocca a me adattare l'esempio alla mia pagina php.
    Ammettiamo che io volessi creare 10 caselle di testo input, con l'opzione for, io scriverei il seguente codice:

    <?php
    for ( $i = 1; $i <= 10; $i++)
    {
    echo "<input type='text' name='maria' size='2' value=''>
    }
    ?>

    in questo modo creerei 10 caselle input chiamate maria, tutte uguali.
    Vorrei, invece, che le caselle si chiamassero in modo differente lun da l'altra, magari aggiungendo al nome maria il valore del contatore $i per ottenere maria1, maria2, maria3 ... maria10, ma non so come concatenare la variabile $1 con maria.
    Se riesci a risolvermi questo saprò come adattarlo al mio codice.
    Grazie.
    Marias.

  6. #6
    bhè... non ti conviene concatenare. Crea un array dato che il tuo script sarà più "adattabile".

    la logica varia di poco rispetto a quella esposta:
    Codice PHP:
    <?php
    for ( $i 1$i <= 10$i++) 
    {
    echo 
    "<input type='text' name='maria[" .$i"]' size='2' value=''>";

    ?>

  7. #7

    Re: Assegnare un nome ad una casella input

    Originariamente inviato da Mariastella1975

    $dato=fgets($file); //Recupera i dati
    echo "<input type='text' name='dal'.$contatore size='2' value=$dato
    $contatore++;
    Credo che semplicemente ci sia un errore di sintassi e piccoli aggiustamenti del codice html...
    codice:
    		$dato = htmlentities($dato,ENT_QUOTES);
    		echo "<input type=\"text\" name=\"dal{$contatore}\" id=\"dal{$contatore}\" size=\"2\" value=\"$dato\">
    name e id andrebbero sempre specificati entrambi, anche se hanno lo stesso identificativo.
    Il value va anch'esso tra virgolette, meglio se escaped, come suggerito.
    Il fatto che vedi \" è corretto, si tratta dell'escaping, perchè html prevede " e non ' (anche se funziona lostesso).
    Io, personalmente, preferisco usare la sintassi "testo {$variabile_di_testo} altro testo normale" anzichè usare il concatenatore di stringhe ^punto^ ( "valore" . $variabile-di_testo . "altro testo normale" ) perchè diviene più semplice da debuggare, ma sono gusti


  8. #8

    Re: Re: Assegnare un nome ad una casella input

    Originariamente inviato da Dascos
    Io, personalmente, preferisco usare la sintassi "testo {$variabile_di_testo} altro testo normale" anzichè usare il concatenatore di stringhe ^punto^ ( "valore" . $variabile-di_testo . "altro testo normale" ) perchè diviene più semplice da debuggare, ma sono gusti
    questa abitudine l'ho presa in virtù del mio editor di codice (notepad++)... mi fa hilightcode facendo in questo modo... cmq sì... è questione di abitudine

    mentre evito SEMPRE:

    echo "testo $var altro testo";

  9. #9

    Re: Re: Re: Assegnare un nome ad una casella input

    Originariamente inviato da oly1982
    mentre evito SEMPRE:

    echo "testo $var altro testo";
    Quoto al mille per mille!
    Idem per me, riguardo l'uso del {$variabile}, uso Zend Studio

  10. #10

    Re: Re: Re: Re: Assegnare un nome ad una casella input

    Originariamente inviato da Dascos
    uso Zend Studio
    .. sborone!!!

    Un altra cosa: con input di numero dinamico è meglio fargli usare input che costruiscono array:
    echo "<input type='text' name='maria[" .$i. "]' size='2' value=''>";

    Così non dovrà mettere mano nel codice che riceverà i dati nel momento in cui il numero di input cambierà (in aumento o in diminunzione).

    Lo sò è + difficile... però è più corretto (oltre che più "elegante").

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.