ComboBox e valori...

di il
17 risposte

ComboBox e valori...

Spiego un attimo l'intricato titolo:
io ho una combobox in cui sono elencati i comuni italiani e la proprietà Value è impostata sul codice ISTAT di ogni comune.
L'utente mi seleziona il comune, e vorrei fare in modo che cliccando un tasto mi riporti in una TextBox sia il valore del codice ISTAT che il nome del comune.
In pratica voglio leggere il dato selezionato nella combo, salvare in una variabile sia la proprietà value che il testo selezionato.
Come si fa, però?
Mille grazie in anticipo

17 Risposte

  • Re: ComboBox e valori...

    Che ne dici di usare l'innerHTML: sull'evento onchange della combo chiami una funzione javascript che va a sostituire il valore (vuoto) della textbox con il value selezionato della combo.
    Una cosa del tipo:
    ==========
    nel body
    <select name="comuni" onChange="change_inner('this.value');">
    ===========
    nell'head
    function change_inner(valore)
    {
    document.getElementById('id_textbox').innerHTML=valore;
    }
    ===================

    Non l'ho controllata ma la procedura è sicuramente questa, potrebbero esserci errori di sintassi.

    Ciao
    Riccardo

    il c# è un linguaggio tagliente...
  • Re: ComboBox e valori...

    Guarda, lo script nella mia pagina è questo:

    window.opener.document.getElementById(ElementID1).value=self.document.getElementById('cmbComuni').value;

    window.opener.document.getElementById(ElementID2).value=self.document.getElementById('cmbComuni').value;

    in quanto le textbox in cui riportare i valori sono in una maschera che ha aperto quella in cui c'è la combo.

    adesso il secondo script scrive nella textbox (ElementID2) il value della combo(come il primo script), ma io dovrei scrivere il testo della voce selezionata nella combo, e se uso la proprietà text mi risponde "undefined"...
  • Re: ComboBox e valori...

    Guarda se il valore deve essere assegnato in tempo reale alla text box non puoi usare quell'assegnamento, in effetti devi proprio usare l'innerHTML come ti ho mostrato prima nell'esempio.

    prova ad adattare l'esempio che ti ho mandato.
    Spero di esserti stato utile, ma senza il codice completo non riesco a fare di più.

    Riccardo



    il c# è un linguaggio tagliente...
  • Re: ComboBox e valori...

    Non va ancora... ecco il codice dell'intera pagina...


    <%@LANGUAGE="VBSCRIPT"%>

    <!--#INCLUDE virtual="inc_common.asp" -->

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="../style.css" rel="stylesheet" type="text/css">
    <title>Selezione Comune</title>
    </head>

    <script language="JavaScript" type="text/JavaScript">
    function SaveAndClose(ElementID1,ElementID2)
    {
    window.opener.document.getElementById(ElementID1).value=self.document.getElementById('cmbComuni').value;
    window.opener.document.getElementById(ElementID2).value=self.document.getElementById('txtComune').value;
    self.close();
    }
    function change_inner(valore)
    {
    document.getElementById('txtComune').innerHTML=valore;
    }

    </script>

    <%
    Prov = request("Prov")
    ElementID1 = request("ElementID1")
    ElementID2 = request("ElementID2")
    %>

    <body bgcolor="#FFFFDD">

    <form name="form1" method="post" action="">
    <p align="left" class="NormalText">Seleziona il comune:</p>
    <p align="center">
    <%
    if (Prov="") then
    CreateComboBoxSQL "cmbComuni", 4, "SELECT Cod_ISTAT, Comune FROM T_Comuni ORDER BY Comune","" ,"change_inner('this.value');"
    else
    CreateComboBoxSQL "cmbComuni", 4, "SELECT Cod_ISTAT, Comune FROM T_Comuni WHERE Prov='" & Prov & "' ORDER BY Comune","" ,"change_inner('this.value');"
    end if
    %>
    </p>
    <p align="center">
    <input name="txtComune" id="txtComune" type="hidden" value="">
    <input name="Submit" type="submit" class="LittleText" value="Salva & Esci" onclick="JavaScript: SaveAndClose('<%=ElementID1%>','<%=ElementID2%>');">
    </p>
    </form>
    </body>
    </html>
  • Re: ComboBox e valori...

    Questa riga non mi convince:

    <input name="txtComune" id="txtComune" type="hidden" value="">

    come hidden? Non dovrebbe essere la tua textarea?

    in più manca la action del form.

    P.S :sono molto più ferrato in php di asp e vbscript

    il c# è un linguaggio tagliente...
  • Re: ComboBox e valori...

    La mia TextBox è nella maschera che ha attivato questo popup, quella "hidden" è solo un appoggio...

    La Action del form non c'è perchè comando l'evento On-Click del bottone...
  • Re: ComboBox e valori...

    Ti mando un esempio minimale ma funzionante in puro html e javascript:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript" type="text/javascript">

    function changeinner(valore)
    {
    document.getElementById('cmbComuni').innerHTML=valore;
    }

    </script>
    </head>

    <body>

    <select name="txtComune" onChange="changeinner(this.value);">
    <option value="Milano">Milano</option>
    <option value="Roma">Roma</option>
    </select>

    <textarea name="textarea" wrap="VIRTUAL" id="cmbComuni">valore di default</textarea>

    </body>
    </html>

    il c# è un linguaggio tagliente...
  • Re: ComboBox e valori...

    La differenza tra il tuo esempio e il mio è questa...
    Questa è la tua combo:
    <i><select name="txtComune" onChange="changeinner(this.value);">
    <option value="Milano">Milano</option>
    <option value="Roma">Roma</option>
    </select></i>
    Mentre questa è la mia:
    <i><select name="txtComune" onChange="changeinner(this.value);">
    <option value="01">Milano</option>
    <option value="02">Roma</option>
    </select></i>

    Io nella textbox non devo visualizzare "01" o "02" ma "Milano" o "Roma"... sono riuscito a spiegarmi un po'meglio ?
  • Re: ComboBox e valori...

    Mi è venuta un'idea....la provo e poi posto


    il c# è un linguaggio tagliente...
  • Re: ComboBox e valori...

    Ho usato un attributo farlocco... l' ho chiamato "label", vedi se ti può andare bene.


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript" type="text/javascript">

    function changeinner(valore)
    {
    document.getElementById('cmbComuni').innerHTML=valore;
    }

    </script>
    </head>

    <body>

    <select name="txtComune" onChange="changeinner(this.options[this.selectedIndex].label);">
    <option value="01" label="Milano">Milano</option>
    <option value="02" label="Roma">Roma</option>
    </select>

    <textarea name="textarea" wrap="VIRTUAL" id="cmbComuni">valore di default</textarea>

    </body>
    </html>


    il c# è un linguaggio tagliente...
  • Re: ComboBox e valori...

    Va che è una bomba...
    Ultima cosa... (non mandarmi al ...) Non posso evitare di mettere la textarea o eventualmente usare un testo nascosto????
  • Re: ComboBox e valori...

    Cosa intendi per testo nascosto? Tu considera che l'innerHTML funziona un pò ovunque, io in una aplicazione avevo usato un livello nascosto <div id="innerlevel"></div> in mezzo a due tag </tr> <tr> cioè tra l'inizio e la fine di una nuova riga della tabella.il risultato è che il livello non si vede.

    il c# è un linguaggio tagliente...
  • Re: ComboBox e valori...

    La textbox in cui devo scrivere il testo della combo non è nella stessa pagina, ma in quella che ha aperto il popup...
    Ecco perchè dovrei scrivere in una textbox di appoggio nascosta. Se uso la textbox al posto di una textarea mi risponde "errore di runtime indefinito..."
  • Re: ComboBox e valori...

    Beh credo che basti riferirti alla window giusta,una cosa del tipo window.parent.document.getElementById.....

    il c# è un linguaggio tagliente...
Devi accedere o registrarti per scrivere nel forum
17 risposte