Visualizzazione risultati 1 fino 10 di 10

Discussione: Prendere un valore e testo da un select

  1. #1
    r85
    r85 non è connesso Utente giovane
    Data registrazione
    18-02-2003
    Messaggi
    37

    Predefinito Prendere un valore e testo da un select

    Mi spiego meglio vorrei prendere il valore ed il testo di una select e trasportarli in due campi hidden(nascosti).

    es. un utente seleziona dalla select Tizio in cui il valore e 10 (chiaramente il valore l'utente nn lo sa).

    Io voglio che Tizio è il valore 10 vengano trasportati in due campi hidden cioè hidden1 = tizio; hidden2= 10

    come si fà?
    Britney Spears

    Nel mio sito visitalo
    http://r85.altervista.org/

  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    <input type=\"hidden\" name=\"boh\" value=\"$row[nomeampo]\">
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    (funcool: vista il nome della sezione [Livello 1: HTML & DHTML] penso voglia sbrigare la cosa sul client, con Javascript, e non sul server con PHP)

    Ti ho abbozzato un esempio, l'ho eseguito e funziona, per vedere come si comporta puoi convertire un attimo gli hidden in campi testo e vedi come assegna il valore al cambiare della selezione della select.
    Dovrebbe essere piuttosto chiaro, alla funzione javascript che gestisce il cambio la select passa il riferimento a se stessa (this), il valore e testo selezionati nella select vengono assegnati dinamicamente ai campi hidden.
    Ricorda di adattare i nomi dei tuoi campi, della select, del form.. etc..

    Codice HTML:
    <SCRIPT type="text/javascript">
     function aggiornaHidden(sel){
      var f = document.frm;
      f.sel_value.value = sel.options[sel.selectedIndex].value;
      f.sel_text.value = sel.options[sel.selectedIndex].text;
     }
    </SCRIPT>
    
    <FORM name="frm">
    
    <SELECT name="sel1" onchange="aggiornaHidden(this)">
     <OPTION value="" selected> Scegli
     <OPTION value="A"> Opzione 1
     <OPTION value="B"> Opzione 2
     <OPTION value="C"> Opzione 3
    </SELECT>
    
    <INPUT type="hidden" name="sel_value">
    <INPUT type="hidden" name="sel_text">
    
    </FORM>
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  4. #4
    r85
    r85 non è connesso Utente giovane
    Data registrazione
    18-02-2003
    Messaggi
    37

    Predefinito

    Citazione Originalmente inviato da heracleum
    (funcool: vista il nome della sezione [Livello 1: HTML & DHTML] penso voglia sbrigare la cosa sul client, con Javascript, e non sul server con PHP)

    Ti ho abbozzato un esempio, l'ho eseguito e funziona, per vedere come si comporta puoi convertire un attimo gli hidden in campi testo e vedi come assegna il valore al cambiare della selezione della select.
    Dovrebbe essere piuttosto chiaro, alla funzione javascript che gestisce il cambio la select passa il riferimento a se stessa (this), il valore e testo selezionati nella select vengono assegnati dinamicamente ai campi hidden.
    Ricorda di adattare i nomi dei tuoi campi, della select, del form.. etc..
    grazie mille :winkOLD: funziona :winkOLD:

    ciao
    Britney Spears

    Nel mio sito visitalo
    http://r85.altervista.org/

  5. #5
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Di nulla
    hai avuto problemi ad adattarlo alla tua esigenza?
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  6. #6
    r85
    r85 non è connesso Utente giovane
    Data registrazione
    18-02-2003
    Messaggi
    37

    Predefinito

    per il momento no

    Ma una domanda (ti posto una bozza di come lo sto personalizzando)
    Codice HTML:
    <script type='text/javascript'>
     function aggiornaHidden(sel){
      var f = document.form;
      f.hs_valore.value = sel.options[sel.selectedIndex].value;
      f.hs_testo.value = sel.options[sel.selectedIndex].text;
     }
    </script>
    prima al posto di hs_testo c'era sel_text ma per caso se cambio sel in hs devo cambiare tutti i vari sel che stanno nelle script?
    Britney Spears

    Nel mio sito visitalo
    http://r85.altervista.org/

  7. #7
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    No no,
    l'importante è che se scrivi nel javascript:
    f.hs_valore.value = sel.options[sel.selectedIndex].value;

    poi devi riportare la modifica anche nel nome del campo hidden:
    <INPUT type="hidden" name="hs_valore">

    perché decisamente si sta puntando allo stesso campo e i nomi devono coincidere assolutamente.

    Mentre invece, nello script quella variabile "sel" che vedi non è altro che il riferimento al campo select, che passa se stesso alla funzione tramite "this".
    Ultima modifica di heracleum : 07-02-2005 alle ore 22.28.02
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  8. #8
    r85
    r85 non è connesso Utente giovane
    Data registrazione
    18-02-2003
    Messaggi
    37

    Question

    Ok grazie

    Un altra domanda e poi nn ti rompo più

    E se devo gestire più select box?

    io ho provato ha fare così:
    Codice HTML:
     function aggiornaHidden(sel){
      var f = document.form;
      f.hs_valore.value = sel.options[sel.selectedIndex].value;
      f.hs_testo.value = sel.options[sel.selectedIndex].text;
     }
     function aggiornaHidden2(sel){
      var f = document.form;
      f.hs2_valore.value = sel.options[sel.selectedIndex].value;
      f.hs2_testo.value = sel.options[sel.selectedIndex].text;
     }
    chiaramente qua ho messo:
    <SELECT name="sel1" onchange="aggiornaHidden2(this)">
    però nn funziona

    come si fa?
    Britney Spears

    Nel mio sito visitalo
    http://r85.altervista.org/

  9. #9
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Se vuoi gestire più select fai così (script più elegante e generico, una funzione sola per più select):

    Codice HTML:
    <SCRIPT type="text/javascript">
     function aggiornaHidden(sel){
      var f = document.frm;
      var val = eval('f.'+ sel.name +'_value');
      var txt = eval('f.'+ sel.name +'_text');
      if (val && txt){
       val.value = sel.options[sel.selectedIndex].value;
       txt.value = sel.options[sel.selectedIndex].text;
      }
     }
    </SCRIPT>
    
    <FORM name="frm">
    
    <SELECT name="sel1" onchange="aggiornaHidden(this)">
     <OPTION value="" selected> Scegli
     <OPTION value="A"> Opzione 1
     <OPTION value="B"> Opzione 2
     <OPTION value="C"> Opzione 3
    </SELECT>
    <INPUT type="hidden" name="sel1_value">
    <INPUT type="hidden" name="sel1_text">
    
    <br>
    
    <SELECT name="sel2" onchange="aggiornaHidden(this)">
     <OPTION value="" selected> Scegli
     <OPTION value="1"> Opzione I
     <OPTION value="2"> Opzione II
     <OPTION value="3"> Opzione III
    </SELECT>
    <INPUT type="hidden" name="sel2_value">
    <INPUT type="hidden" name="sel2_text">
    
    </FORM>
    (script testato, funziona)

    Spiego,
    in pratica puoi mettere quante select vuoi (nell'esempio ne ho messe solo 2 ovviamente) e puoi chiamarle (name) come ti pare, non per forza con un progressivo (sel1, sel2).
    Dunque il nome delle select a piacere MA, attenzione, il nome dei campi hidden è strettamente legato al name della select! Cioè gli hidden del valore e del testo, si devono chiamare rispettivamente:
    <NomeSelect>_value
    <NomeSelect>_text

    ok? se chiami una select "ciccio" i campi hidden devono chiamarsi "ciccio_value" e "ciccio_text", è proprio quello che fa lo script, va a cercare i campi ".._value" e ".._text" con prefisso identico al nome della select passata. Tutto merito della strepitosa funzione eval() di javascript, in base alla quale puoi avere riferimenti ad oggetti in base alla composizione di una semplice stringa.
    Insomma penso che hai capito bene, no?
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  10. #10
    r85
    r85 non è connesso Utente giovane
    Data registrazione
    18-02-2003
    Messaggi
    37

    Predefinito

    personalizato e funziona alla perfezione

    grazie mille mi sei stato molto d'aiuto se serve qualcosa di grafica sono qua

    ciao
    Britney Spears

    Nel mio sito visitalo
    http://r85.altervista.org/

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •