Perché valorizzi la variabile scelta lato server.
Quando carichi la pagina sul browser assegni un valore poniamo riga1 (col php linguaggio lato server) quando fai l'onchange il cambiamento avviene sul client (pc dell'utente/visitatore) ma alla variale il dato non cambia perché non hai ricaricato la pagina.
Prima soluzione ricarico pagina:
<select name="mySelect" onchange="location.href='?scelta='+this.options[this.selectedIndex].value">
var scelta = "<?php $_GET['scelta']; ?>"
oppure senza ricarica della pagina:
codice:
<script type="text/javascript">
function popola_input(){
var select = document.forms['myForm'].mySelect; //Recupero la SELECT
var input = document.forms['myForm'].myInput; //Recupero l'Input
/**
* Recupero il testo della option selezionata
* Per recuperare il value, utilizzare l'attributo ".value" anziche' ".text"
*/
var scelta = select.options[select.selectedIndex].value;
//Popolo l'input
input.value = scelta;
}
</script>
Fermo restando che la select sia popolata correttamente dal php
P.S. Ricontrolla la sintassi php che conosco poco/nulla.
P.S.S. Consiglio quando integri php al javascript verifica sempre cosa accade sul browser guadando il codice sorgente pagina