Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    12

    form: variabile php in una select

    ciao a tutti! mi chiamo Laura :-)
    premetto che sono alle prime armi con php, vi spiego il mio problemino sperando di riuscire a spiegarmi e di riuscire a risolverlo!

    ho un form composto da un campo testo e da una select in html, quello che io seleziono/digito in questa form mi viene scritto su un file di testo ok?
    ora, io voglio (vorrei!) che quello che io scrivo manualmente nel campo testo mi vada nella mia select in modo tale che selziono la select mi scriva sul file di testo quello che avevo scritto nel campo testo, spero di essermi spiegata!

    vi allego il mio codicillo, che ovviamente non mi funziona :-(
    in pratica se io scrivo nel campo testo "laura" e selziono dalla select la voce che ho chiamato "1" nel file di testo che viene creato mi scriva 2 volte "laura"

    non ci riescooo :-(
    questo è il mio file php:
    Codice PHP:
    <?php
    $nome 
    $_POST['nome'];
    $select $_POST['select'];

    //scrive la pagina .PHP
    $fp fopen("testo.txt""a") or die("ERRORE: non riesco a creare la pagina PHP");
    fwrite($fp"$nome \n");
    fwrite($fp"$select \n");
    fclose($fp);

    if (
    $_POST['submit']) {
    print 
    "file aggiornato";
    }
    ?>
    <html>
    <body>

    <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
    <table width="500" border="0" cellpadding="5" cellspacing="0">
    <tr><td><input type="text" name="nome"></td></tr>
    <tr><td>

    <select size="1" name="select">
        <option value="">scegli</option>
        <option value="<?php echo $nome?>">1</option>
    </select></td></tr></table>

    <input type="submit" name="submit" value="submit">

    </body></html>
    dimenticavo!

    al momento questo codice che vi ho postato mi da come risultato che se io scrivo laura e seleziono dalla select "1" mi scrive nel file di testo "laura",
    se io lo rifaccio e scrivo "pippo" nel file di testo e seleziono "1" mi scrive "pippo" e "laura" :-( (lo tiene in memoria dalla volta prima?!)

    scusate :-(

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    intanto siccome lo script gestisce sia il form che il suo invio dovresti fare dei controlli per capire se è chiamato dopo l'invio o meno (sposta if ($_POST['submit']) { in cima alla parte di gestione), inoltre fopen("testo.txt", "a") significa (quella "a") "append", cioè "aggiungi" i contenuti in coda a quelli esistenti... se ogni volta vuoi "svuotare" il file devi usare "w"

  3. #3
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    io farei proprio 2 cose distinte.
    Non abituarti ad usare questa tecninca perche' esci di testa e avrai sempre dei sistemi brutti.

    Io personalmente odio mescolare le cose.

    1- pagina html con il form
    2- script php con codice e redirects


    1 :
    Codice PHP:
    <?

    //Eventuale codice php per il recupero dei dati salvati

    $options "";

    if( 
    file_exists("nomi.txt") ) 
    {
    // Estrai i nomi dal file e crea le opzioni per la select
    }

    ?>
    <form name="mioform" action="prova.php" method="post">
    <select size="1" name="select">
        <option value="">scegli</option>
    <?=$options?>
    </select>

    <input type="submit" name="s" value="Invia dati" />
    </form>

    2:
    Codice PHP:

    if( $_POST["select"] )
    {
    // GESTISCI IL NOME SELEZIONATO

    }
    else
    {
    header("loaction:index.php?e=1&c=1") ;


  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    12
    grazie ad entrambi della risposta

    @virus:
    ma quello che hai fatto tu non è che per caso prende i nomi dal file di testo? no perchè io ci devo scrivere nel file! te lo chiedo perchè ho letto il commento:
    // Estrai i nomi dal file e crea le opzioni per la select
    praticamente la select la "riempio" a seconda di quello che ho scritto nella text box!
    e poi salvo tutto nel file di testo, scusate ma ci capisco poco :-( ma voglio imparare!

  5. #5
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Beh tu crei una select ... e quella select deve avere i nomi da qualche aprte. Vedevo che salvavi i dati su file di testo ....

    Cmq se stai facendo solo per esercizio inizia usando i campi testuali e scrvi nel file l'input inserito nel campo testuale.

    Altrimenti creati a mano la select

    P.S.
    Per controllare il contenuto del file nel file index.html

    Codice PHP:

    echo"<pre>".file_get_contents$filePath )."</pre>" 

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    12
    quindi è impossibile fare quello che serve a me?
    cioè che io scrivo ad esempio "pippo" nel text box e questo pippo sia selezionabile nella select?
    purtroppo mi serve proprio questo perchè faccio un esempio pratico:
    ho 2 campi testo "nome" e "cognome" e una select dove posso scegliere se stampare nome o cognome ma ovviamente queste 2 voci della select devono prendermi quello che io ho scritto nei 2 text box di prima quindi


    Codice PHP:
    <?php
    if ($_POST['submit']) {
    print 
    "file aggiornato";
    $nome $_POST['nome'];
    $cognome $_POST['cognome'];
    $select $_POST['select'];

    //scrive la pagina .PHP
    $fp fopen("testo.txt""w") or die("ERRORE: non riesco a creare la pagina PHP");
    fwrite($fp"dalla text box: >$nome <\n");
    fwrite($fp"dalla select: > $select <\n");
    fclose($fp);


    }
    ?>
    <html>
    <body>

    <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
    <table width="500" border="0" cellpadding="5" cellspacing="0">
    <tr><td><input type="text" name="nome"> <input type="text" name="cognome"></td></tr>
    <tr><td>

    <select size="1" name="select">
        <option value="">scegli</option>
        <option value="<?php echo $nome?>">scrivi nome</option>
        <option value="<?php echo $cognome?>">scrivi cognome</option>
    </select></td></tr></table>

    <input type="submit" name="submit" value="submit">

    </body></html>

  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Se edvi farlo all'interno della stessa pagina hai 2 soluzioni ;


    1- php con uno script simile al mio solo che il nome lo inserisci nel testbox e a refreshlo rendi disponbile nella selct

    2- javascript inserisci e quando premi invio o perdi il foscu dell'element(evento onblur) ripopoli la select aggiungendo il nuovo campo

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    12
    ok virus quindi senza fare il refresh devo usare javascript?

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    si può, ma non ti serve un file di testo... tu puoi mostrare un campo di testo e memorizzare il dato in una sessione, quindi proponi un nuovo form che popola la SELECT con quel valore, oppure semplicemente compilare il form "al volo" in un passo es.:

    Codice PHP:
    <?php
    $opzioni 
    = array();
    if (isset(
    $_POST['invio'])) {
      
    $dato $_POST['dato'];
      
    $opzioni[] = $dato;
    };
    ?>
    <form action="script.php" method="post">
    <input type="text" name="dato"/>
    <select name="selezione">
    <?php foreach($opzioni) as $k=>$v) { ?>
    <option value="<?php print $k?>"><?php print $v?></option>
    <?php }; ?>
    </select>
    <input type="submit" name="invio" value="invia"/>
    </form>
    che si può "implementare" anche per più dati, nel qual caso useremmo le sessioni per tenere traccia di tutti i dati inseriti, p.es.:
    Codice PHP:

    <?php
    session_start
    ();
    $opzioni = array();
    if (isset(
    $_SESSION['opzioni'])) $opzioni $_SESSION['opzioni'];
    if (isset(
    $_POST['invio'])) {
      
    $dato $_POST['dato'];
      
    $opzioni[] = $dato;
      
    $_SESSION['opzioni'] = $opzioni;
    };
    ?>
    <form action="script.php" method="post">
    <input type="text" name="dato"/>
    <select name="selezione">
    <?php foreach($opzioni) as $k=>$v) { ?>
    <option value="<?php print $k?>"><?php print $v?></option>
    <?php }; ?>
    </select>
    <input type="submit" name="invio" value="invia"/>
    </form>

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    12
    grazie eiyen adesso me lo studio bene
    cmq il famoso file di testo mi serve solo come "salvataggio" delle mie scelte! spero sia chiaro!

    adesso lo studio e ci sentiamo dopo grazie

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.