Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    23

    Problema passaggio valori in link e con menu a tendina

    Salve a tutti,

    è da un paio di giorni che mi sono inchiodato sua una parte relativamente semplice (almeno pensavo) e che invece mi sta facendo perdere molto tempo.

    Ho un menu a tendina popolato dinamicamente. Tutto ok. Una volta selezionato il valore del primo menu a tendina, vorrei che la pagina stessa venisse ricaricata e il secondo menu a tendina popolato di conseguenza.

    Il fatto è che NON riesco a passare il valore selezionato dal primo menu a tendina alla pagina stessa (nel senso che il link con il nome della variabile resta sempre vuoto). Di seguito parte del codice:
    codice:
        <?php 
        $_GET['DescrizioneGruppo'] 
        ?>
        <select name="DescrizioneGruppo" onchange="window.location.href+='?DescrizioneGruppo='+this.options[this.selectedIndex].value;">
                  <option value="">Scegli</option>
                  <option value=""></option>
    
    
    <?php
        $username="root";
        $password="admin";
        $database="ORDINI";
        
        mysql_connect(localhost,$username,$password);
        @mysql_select_db($database) or die("Impossibile selezionare il database");
        $query="SELECT DISTINCT(DescrizioneGruppo) FROM ANAGRAFICA_TITOLI ORDER BY DescrizioneGruppo ASC";
        $risultati1=mysql_query($query);
        
        $num=mysql_numrows($risultati1);
        
        mysql_close();
     
        $i=0;
        while ($i < $num) {
           $DescrizioneGruppo=mysql_result($risultati1,$i,"DescrizioneGruppo");
        ?>
           
                  <option value=""><?php echo $DescrizioneGruppo;?></option>
    <?php
        $i++;
        }
        ?>
        </select>
    Grazie per l'eventuale supporto

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    23
    Nessuno è in grado di dirmi perché non riesco a passare nel collegamento alla stessa pagina, il valore selezionato dal menu?
    Questo codice specifico...

    codice:
    <selectname="DescrizioneGruppo"onchange="window.location.href+='?DescrizioneGruppo='+this.options[this.selectedIndex].value;">
    
    ... non è in grado di assegnare al parametro DescrizioneGruppo, alcun valore. Infatti il link risultante è il seguente:

    http://localhost:8888/php/inseriment...rizioneGruppo=

    Grazie

  3. #3
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Codice PHP:
    <option value=""><?php echo $DescrizioneGruppo;?></option>
    Ma se il value del option è sempre "", come pensi che ti possa passare qualcosa?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    23
    Scusa boots sono 6 anni che non scrivo una riga di codice ed ho ripreso solo da pochi giorni. Hai ragione!
    Ti chiedo ancora DUE dritte se ti è possibile...

    Ora il parametro viene passato correttamente, ma ad ogni refresh della pagina è come se venisse "sommato" al precedente (vedi link sotto dopo 3 refresh)

    ... inserimento01.php?DescrizioneGruppo=DVD%20FILM?Des crizioneGruppo=CD?DescrizioneGruppo=DVD%20MUSICALI

    Infine... come faccio a far si che il parametro mi resti selezionato anche al successivo refresh?
    Così non funziona...

    codice:
    <option value="<?php $_GET['DescrizioneGruppo'] ?>" selected>
    Grazie

  5. #5
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Per le ripetizioni credo dipenda dal fatto che fai

    window.location.href+=

    Quindi concateni sempre al url attuale (compreso di query string).
    Prova a fare

    window.location.href = pagina.php?DescrizioneGruppo='+this.options[this.selectedIndex].value;

    Per il selected, dovresti controllare se il parametro $_GET è uguale ad uno dei valori della select, esempio:
    Codice PHP:
    while ($i < $num) {
           $DescrizioneGruppo=mysql_result($risultati1,$i,"DescrizioneGruppo");
           $selected = (isset($_GET['DescrizioneGruppo'])
                            && $_GET['DescrizioneGruppo'] == $DescrizioneGruppo) ? 'selected' :'';
        ?>
           
           <option value="<?php echo $DescrizioneGruppo ?><?php echo $selected ?>><?php echo $DescrizioneGruppo;?></option>

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    23
    Quote Originariamente inviata da boots Visualizza il messaggio
    Per le ripetizioni credo dipenda dal fatto che fai

    window.location.href+=

    Quindi concateni sempre al url attuale (compreso di query string).
    Prova a fare

    window.location.href = pagina.php?DescrizioneGruppo='+this.options[this.selectedIndex].value;
    Grande boots! Per la prima richiesta ho seguito pedissequamente il tuo suggerimento (eliminando il +) e tutto è andato bene.
    In merito alla seconda ho provato ad applicarla, ma senza i risultati sperati. Tuttavia, mi hai comunque illuminato ed ho utilizzato un if come di seguito indicato
    codice:
    	$test = $_GET['DescrizioneFornitore'];
    	if ($test <> NULL) {
        ?> 
        		  <option value="<?php echo $test;?>" selected><?php echo $test;?></option>
    Adesso ho però un altro problema... la pagina dispone di 4 menu a tendina e quando ne seleziono uno, la pagina si aggiorna, perdendo tutte le eventuali selezioni degli altri 3 menu, con l'unica eccezione di quello che ha provocato il refresh. Come potrei risolverla?
    Grazie come sempre per la disponibilità.

  7. #7
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Credo dovresti usare le sessioni per memorizzare i valori delle select

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.