Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Problema con onChange

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    69

    Problema con onChange

    Ho creato una pagina con una lista di indirizzi catalogati per provincia. In cima alla pagina ho una select con la lista di tutte le provincie; a questo select ho assegnato l'evento onChange in modo da generare diversi URL per ogni provincia.

    Codice PHP:
    <form class="form" action="javascript:update();"
            <
    select name="cities" id="cities" onchange "update(); location.hash = '?id=' + this.value"
                     <
    option value "Bologna">Bologna</option
                     <
    option value "Milano">Milano</option
                     <
    option value "Roma">Roma</option>
            </
    select>
    </
    form
    Ad esempio l'URL generato per Bologna è http://miosito.it/pagina.html#?id=Bologna.


    Il mio problema è:
    Se ad esempio copio il link di un altra regione (esempio: Roma) e apro una nuova scheda e lo incollo nella barra degli indirizzi e faccio invio, mi riporta a posizionarsi sempre sulla prima option (in questo caso Bologna).
    Perché?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Perché le ancore (hash) con le option della select non centrano nulla
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    69
    Originariamente inviato da cavicchiandrea
    Perché le ancore (hash) con le option della select non centrano nulla
    e non c'è un modo per fare delle ancore (link) che funzionano?

  4. #4
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    codice:
    update(); location.hash = '#' + this.value;

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    69
    Originariamente inviato da carlomarx
    codice:
    update(); location.hash = '#' + this.value;
    Grazie!
    Ma non funziona. incollo il link nella barra degli indirizzi e mi riporta sulla prima option.
    Non so perché fa così.
    Grazie comunque!

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Se vuoi selezionare una determinata option in base all'url prova a vedere se qui trovi una soluzione
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Non so perché non ti funziona. Prova anche così, chissà&hellip;

    codice:
    update(); location.hash = '#' + this[this.selectedIndex].value;

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    69
    Ho provato anche quello ma non funziona.
    Ho provato sia in locale che nel server.

  9. #9
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Aspetta, non avevo capito qual era il tuo problema&hellip;

    Devi mettere una funzione nell'onload che legga il window.location.search e imposti la select di conseguenza. Prova così. Metti questo nell'head:

    codice:
    <script type="text/javascript">
    var oGetVars = new (function(sSearchStr) {
    	function buildValue(sValue) {
    		if (/^\s*$/.test(sValue)) { return(null); }
    		if (/^(true|false)$/i.test(sValue)) { return(sValue.toLowerCase() === "true"); }
    		if (isFinite(sValue)) { return(parseFloat(sValue)); }
    		if (isFinite(Date.parse(sValue))) { return(new Date(sValue)); }
    		return(sValue);
    	}
    	if (sSearchStr.length > 1) {
    		var iCouple, aCouples = sSearchStr.substr(1).split("&");
    		for (var iCouplId = 0; iCouplId < aCouples.length; iCouplId++) {
    			iCouple = aCouples[iCouplId].split("=");
    			this[unescape(iCouple[0])] = iCouple.length > 1 ? buildValue(unescape(iCouple[1])) : null;
    		}
    	}
    })(window.location.search);
    
    window.onload = function() { document.getElementById("cities").selectedIndex = oGetVars.id; };
    </script>
    Dopodiché la tua select impostala così:

    codice:
    <form class="form" action="java-script:update();"> 
            <select name="cities" id="cities" onchange = "update(); location.search = '?id=' + this.selectedIndex;"> 
                     <option value = "Bologna">Bologna</option> 
                     <option value = "Milano">Milano</option> 
                     <option value = "Roma">Roma</option>
            </select>
    </form>
    Scusa, è che non avevo proprio capito&hellip;

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    69
    Grazie carlomarx!
    Ma anche con questo non funziona. forse va in conflitto con update(); ho provato a toglierlo ma non cambia niente.

    Ho messo nel body location.search e nel head lo script. Ma non funziona.
    Ecco il problema: http://adrar4travel.com/orario/try.html

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.