Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    selezione menu' A controlla option menu' B ???

    MI HANNO DETTO DI POSTARLO QUI PERCHE' HA A CHE FARE CON GLI ARRAY JAVASCRIPT, anche se concerne PHP, comunque:

    ho un menu' a tendina mettiamo A naturalmente dinamico.
    a seconda della voce selezionata nel menu' A voglio che il menu' B mi presenti delle specifiche opzioni.
    naturalmente la soluzione + immediata e semplice è creare 1 pagina per il menu' A che [onChange="submit();"] passa un ID alla pagina 2 del menu' B (CHE FILTRA I DATI DAL DB).
    ma cio' comporta lo spiacevole inconveniente che la pagina 2 si RICARICA facendo scomparire il menu' seppur per brevi istanti.
    QUALCUNO HA UN'IDEA MIGLIORE?

    P.S.= avevo pensato ad un output bufferizzato ma non mi sono addentrato oltre...

    Ciao!!

  2. #2
    Reale_Augello
    Guest

    Prova...

    ... con una cosa del tipo:

    codice:
    <script language="JavaScript">
    
    function Cambia(valore) {
     modulo=document.nomeform;
     switch(valore) {
      case 1:
      modulo.B.options[0]=new Option('testo1','valore1a');
      modulo.B.options[1]=new Option('testo1b','valore1b');
      modulo.B.options[2]=new Option('testo1c','valore1c');
      break;
      case 2:
      modulo.B.options[0]=new Option('testo2a','valore2a');
      modulo.B.options[1]=new Option('testo2b','valore2b');
      modulo.B.options[2]=new Option('testo2c','valore2c');
      break;
      case 3:
      modulo.B.options[0]=new Option('testo3a','valore3a');
      modulo.B.options[1]=new Option('testo3b','valore3b');
      modulo.B.options[2]=new Option('testo3c','valore3c');
      break;
     }
    }
    
    </script>
    La chiamata sarebbe:

    <select name="A" onChange="Cambia(this[this.selectedIndex].value);">

    Ciao !

  3. #3
    Ho apportato le modifiche che mi hai consigliato, e mi sembra che questo script faccia prorpio al caso mio ma non so perchè non funzia...ti passo il codice:

    --------------------------------------------------------------------


    <html>
    <head>
    <title>Titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

    <script language="JavaScript" type="text/JavaScript">

    function Cambia(valore) {
    modulo=document.form;
    switch(valore) {
    case 1:
    modulo.B.options[0]=new Option('testo1a','valore1a');
    modulo.B.options[1]=new Option('testo1b','valore1b');
    modulo.B.options[2]=new Option('testo1c','valore1c');
    break;
    case 4:
    modulo.B.options[0]=new Option('testo2a','valore2a');
    modulo.B.options[1]=new Option('testo2b','valore2b');
    modulo.B.options[2]=new Option('testo2c','valore2c');
    break;
    case 5:
    modulo.B.options[0]=new Option('testo3a','valore3a');
    modulo.B.options[1]=new Option('testo3b','valore3b');
    modulo.B.options[2]=new Option('testo3c','valore3c');
    break;
    }
    }

    </script>
    </head>

    <body>

    <form name="form" method="get" action="top_dx.php" target="rightFrame">
    <table width="337">
    <tr>
    <td>Citt&agrave;:
    <select name="A" onChange="Cambia(this[this.selectedIndex].value);">





    <option value="%">Tutte le città</option>
    <option value="1">Rovigo</option>
    <option value="4">Milano</option>
    <option value="5">Milano</option>
    <option value="6">Torino</option>
    <option value="7">Roma</option>
    <option value="8">Veneziaa</option>
    <option value="10">Berlino</option>
    <option value="11">amsterdam</option>
    </select>
    </td>
    <td>
    <select name="B">
    </select>
    </td>

    <td> </td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    --------------------------------------------------------------------


  4. #4
    Reale_Augello
    Guest

    Non...

    ... usare come nome di un form il valore 'form'.
    Dunque, cambia

    modulo=document.form;

    in

    modulo=document.nomeform;

    Ovviamente le modifiche vanno anche qui:

    <form name="nomeform" method="get" action="top_dx.php" target="rightFrame">

    Fammi sapere !

  5. #5

    Non è quello....

    Prima il form si chiamava 'modulo' ed era la stessa cosa, comunque per sicurezza l'ho cambiato e testato, tutto uguale, non va.
    penso che il problema sia che non passa la variabile o nella funzione switch...
    scusa se rompo oggi il 1° Maggio, adesso stacco, intanto ti ringrazio..
    Ciao!

  6. #6
    Reale_Augello
    Guest

    Prova...

    ... con questa modifica:

    codice:
    <script language="JavaScript" type="text/JavaScript"> 
    
    function Cambia(valore) { 
    modulo=document.form; 
    switch(valore) { 
    case '1': 
    modulo.B.options[0]=new Option('testo1a','valore1a'); 
    modulo.B.options[1]=new Option('testo1b','valore1b'); 
    modulo.B.options[2]=new Option('testo1c','valore1c'); 
    break; 
    case '4': 
    modulo.B.options[0]=new Option('testo2a','valore2a'); 
    modulo.B.options[1]=new Option('testo2b','valore2b'); 
    modulo.B.options[2]=new Option('testo2c','valore2c'); 
    break; 
    case '5': 
    modulo.B.options[0]=new Option('testo3a','valore3a'); 
    modulo.B.options[1]=new Option('testo3b','valore3b'); 
    modulo.B.options[2]=new Option('testo3c','valore3c'); 
    break; 
    } 
    } 
    
    </script>
    Dovrebbe andare...

  7. #7
    Utente di HTML.it L'avatar di giord
    Registrato dal
    Jan 2002
    Messaggi
    448
    Grandissimo....funziona è proprio quello che cercavo!
    :tongue:

  8. #8

    Ottimo....

    Ora però dovrei renderlo dinamico, devo ancora pensare come farlo senza che ogni volta si ricarichi la pagina, potrei memorizzare i dati in un array lato client....che ne pensate?

  9. #9
    Reale_Augello
    Guest

    ...

    Originariamente inviato da max161
    Ora però dovrei renderlo dinamico, devo ancora pensare come farlo senza che ogni volta si ricarichi la pagina, potrei memorizzare i dati in un array lato client....che ne pensate?
    Cosa intendi per dinamico ?
    I due menu sono generati da script lato server ?

  10. #10

    Esattamente:

    funziona alla perfezione ti ringrazio, aggingerei soltanto una ultima "chicca" allo script e cioè:

    function Cambia(valore) {

    modulo=document.nomemodulo;
    switch(valore) {
    case '%':
    modulo.id.options.length=0;
    modulo.id.options[0]=new Option('Tutti i record ','%','',true);
    break;
    case '1':


    modulo.id.options.length=0;
    modulo.id.options[0]=new Option('Tutti i record ','%');
    modulo.id.options[1]=new Option('Talamona','4');
    modulo.id.options[2]=new Option('2 torri','8');
    modulo.id.options[3]=new Option('la sirenetta','9');
    break;


    case 'n':


    modulo.id.options.length=0;
    modulo.id.options[0]=new Option('Tutti i record ','%');
    modulo.id.options[1]=new Option('','');
    break;
    }
    }

    </script>

    giusto no? quando cambio voce al primo menù mi resetta il secondo prima di creare le voci corrispondenti.

    Ciao!:mavieni:

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.