Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    lista menù creata con Javascript

    Con questa funzione faccio interagire due select, una è generata dinamicamente dal php e l'altra anche dal php ma costruita con javascript

    Codice PHP:
    <script type="text/javascript" language="javascript">
    <!--
    function 
    travasa(dovevalore) {
     var 
    k=0;
     for (
    j=0j<elementi.lengthj++)
      if (
    elementi[j].indicatore==valore) {
       
    dove.options[k]=new Option(elementi[j].textelementi[j].value);
       
    k++
      }
     
    dove.options.length=k;  
    }
    -->
    </script>


    //il primo select

    <select name="tipo" id="tipo" onChange="travasa(this.form.do_id_opzionia, this.options[this.selectedIndex].value);">
             <option value="">No</option>
        <option value="Colore" selected>Colore</option>
             <option value="Misura" >Misura</option>
     </select>  



    //Il secondo generato con javascript

    <script type="text/javascript" language="javascript"><!--
    var elementi = new Array(
    {text:"Giallo", value:"3", indicatore:"Colore"},
    {text:"Large", value:"5", indicatore:"Misura"},
    {text:"Rosso", value:"1", indicatore:"Colore"},
    {text:"Small", value:"4", indicatore:"Misura"},
    {text:"Verde", value:"2", indicatore:"Colore"}
    );
    --></script>


    la funzione che parte al caricamento della pagina 

    <script type="text/javascript" language="javascript">
            <!--
            if (document.form1.do_id_opzionia) {
                document.onLoad = travasa(document.form1.do_id_opzionia, document.form1.tipo.value);
            }
            -->
    </script> 

    Dato che questa funzione devo richiamarla in un modulo che permette la modifica di un prodotto, avrei bisogno di impostare i due valori che sono presenti nel database, per il primo menù applico l'attributo "SELECTED" con php e non ci sono problemi, ma nel secondo menù come faccio a recuperare il valore precedente e ad attivare il SELECTED su quel menù che è invece generato con javascript?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Forse stai cercando la proprieta` .defaultSelected() da applicare all'opzione?

    pag del manuale devGuru
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    credo proprio sia quella... adesso do un'occhiata

  4. #4
    mi sa che non riesco a interpretarlo ...

  5. #5
    ho provato così ma non funziona:

    Codice PHP:
    <!--
    function travasa(dove, valore) {
     var k=0;
     for (j=0; j<elementi.length; j++)
      if (elementi[j].indicatore==valore) {
       dove.options[k]=new Option(elementi[j].text, elementi[j].value);
       if (elementi[j].value == <?=$rs_art['id_opzionia']?>) {
               document.form1.do_id_opzionia.options[j].defaultSelected = true;
       }
       k++
      }
     dove.options.length=k;  
    }
    -->

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    C'e` qualcosa che non va.

    Anzitutto non so cosa sia quella variabile PHP introdotta, ma supponiamo sia corretta (anche se mi sembra strano che sia numerica).

    Ma che ci fanno due indici che hanno lo stesso valore in ogni momento?

    E poi come e` definito ciascun elemento del vettore? non mi sembra che gli oggetti contenuti abbiano nomi validi.

    Infine in fondo ridefinisci la lunghezza del vettore options (che non serve).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    così adesso pare funzioni:


    Codice PHP:
    function travasa(dove, valore) {
     var k=0;
     for (j=0; j<elementi.length; j++)
      if (elementi[j].indicatore==valore) {
       dove.options[k]=new Option(elementi[j].text, elementi[j].value);
       if (dove.options[k].value == <?=$rs_art['id_opzionia']?>) {
               dove.options[k].selected = true;
       }
       k++
      }
     dove.options.length=k;  
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    che dovrebbe essere equivalente a:
    codice:
    function travasa(dove, valore) {
      for (var j=0; j<elementi.length; j++) {
        if (elementi[j].indicatore == valore) {
          dove.options[j] = new Option(elementi[j].text, elementi[j].value);
          if (dove.options[j].value == <?=$rs_art['id_opzionia']?> ) {
             dove.options[j].selected = true;
          }
        }
      }
    }
    Occhio che ho aggiunto una { }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.