riempire le select coi valori dei campi di input

  • Creatore Discussione Creatore Discussione l@ura
  • Data di inizio Data di inizio

l@ura

Nuovo Utente
19 Mar 2012
7
0
1
ciao a tutti!
avrei questo problema: devo riempire delle select con dei valori che dò in input da text box
avevo aperto un thread nella sezione "php" ma mi hanno giustamente fatto notare che la cosa si risolve con il javascript ma purtroppo non sono capace!

questo è il codice della mia paginetta, avete idea di come integrare del codice javascript in modo tale che quello che io digito nella text box sia selezionabile nella select? grazie in anticipo!

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>


mentre questa se vi interessa e se si può è la discussione nella sezione php:

http://forum.mrwebmaster.it/php/29030-form-variabile-php-select.html
 
Ciao, puoi provare cosi ... se ho capito bene

PHP:
<?php
if (isset($_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);
} else {
    
    $nome = "";
    $cognome = "";
    $select = "";
}
?>
<html>
    <head>
        <script type="text/javascript">
            function assegna_value(select){
                // se la voce selezionata è nome
                if(select.options[select.selectedIndex].value == "nome") { 
                    // assegno al value il valore dell'input con id nome
                    select.options[select.selectedIndex].value = document.getElementById("nome").value;
                    // se invece la voce selezionata è cognome    
                }else if(select.options[select.selectedIndex].value == "cognome") {
                    // assegno al value il valore dell'input con id cognome
                    select.options[select.selectedIndex].value = document.getElementById("cognome").value;
                }
            }
        </script>
    </head>
    <body>
        <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
            <table width="500" border="0" cellpadding="5" cellspacing="0">
                <tr><td><input type="text" id="nome" name="nome"><input type="text" id="cognome" name="cognome"/></td></tr>
                <tr><td>

                        <select size="1" name="select" onchange="assegna_value(this)">
                            <option value="">scegli</option>
                            <option value="nome">scrivi nome</option>
                            <option value="cognome">scrivi cognome</option>
                        </select></td></tr></table>

            <input type="submit" name="submit" value="submit"/>
        </form>
    </body>
</html>

ho assegnato un id agli input nome e cognome , ho chiuso qualche tag html che avevi dimenticato aperto, ho valorizzato cmq tutte le variabili php per non avere messaggi di warning per il resto quello che ti serve di javascript l'ho commentato

ciao

dimenticavo di dirti che la funzione javascript viene richiamata ogni volta che cambi la select tramite l'evento onchange
visto che non utilizzo le variabili php nella form si puo anche evitare di valorizzarle con l'else
 
Ultima modifica:
Pensandoci un po meglio, si possono risparmiare delle righe di codice

Codice:
<script type="text/javascript">
            function assegna_value(select){
                // recupero il valore della option selezionata
                var identificativo = select.options[select.selectedIndex].value; 
                // gli assegno il valore del input con id corrispondente
                select.options[select.selectedIndex].value = document.getElementById(identificativo).value;                
            }
        </script>

o con una sola riga

Codice:
<script type="text/javascript">
            function assegna_value(select){                
                select.options[select.selectedIndex].value = document.getElementById(select.options[select.selectedIndex].value).value;                
            }
        </script>

o adirittura direttamente nella select

HTML:
<select size="1" name="select" onchange="this.options[this.selectedIndex].value = document.getElementById(this.options[this.selectedIndex].value).value;">
                            <option value="">scegli</option>
                            <option value="nome">scrivi nome</option>
                            <option value="cognome">scrivi cognome</option>
                        </select>

ma forse sto esagerando :-)
 
Bravissimo criric! FUNZIONA!!!!

ti ringrazio davvero tanto! :fonzie:

ciauu criric :love:
 

Discussioni simili