Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916

    onchange con modifica parametro

    ciao a tutti.
    ho questo problema, devo tramite select ricaricare la stessa pagina, ma tenendo tutte le varibili in querystring presenti tranne una che va modificata.

    codice:
    <SELECT name="lingua" onChange="window.location.href+='&lng='+this.options[this.selectedIndex].value;"> 
    <OPTION value="1033">ENGLISH 
    <OPTION value="1040" selected>ITALIANO</OPTION> 
    </SELECT>
    facendo così mi ricarica la pagina ma la variabile lng viene aggiunta a quello che cè già.
    Se però lng già esiste vorrei che venisse modificato e non aggiunto.

    come si può fare?

    grazie!
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  2. #2
    devi prendere il window.location.href, tagliarlo sul ?, fare lo split su & nella parte di destra del tagliato, e controllare ogni valore, finché non trovi quello che ti serve.

    Se usi una libreria di JS che propone metodi per manipolare le stringhe dovrebbe essere semplice.

    tipo

    http://clientside.cnet.com/wiki/cnet...rystringvalues

    Dopo aver ottenuto l'oggetto setti il tuo valore con

    obj.lng = "nuovoValore";

    che se non c'è lng lo aggiunge, altrimenti lo cambia

  3. #3
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    dunque io per avere i parametri, uso una regexp:

    codice:
    function objQueryString(qs){ 
    	dic = new Array()
    	if(!qs)	qs = location.search
    	qs = qs.replace(/\?/,'')
    	aQs = qs.split('&')
    	txt = ''
    	for(i=0;i<aQs.length;i++){
    		aPV = aQs[i].split('=')
    		dic[aPV[0]]=aPV[1]
    	}
    	return dic
    }
    qs = objQueryString()
    
    //posso prelevare lng direttamente cosi 
    lng = (qs['lng']);
    
    //cosi prelelevo tutte le variabile e ricompongo la querystring 
    for(x in qs) 
    qstringa = x+'='+qs[x]+'&';
    ma non ho idea di come fare a sostituire la variabile...
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  4. #4
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    faccio un uppino...

    mi sembrava che con la regexp di essere sulla buona strada, ma non so come continuare...
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao yro,

    anche se la funzione objQueryString è fatta veramente bene
    (complimenti a chi l'ha fatta ) l'ho fatta io
    per quello che ti serve potresti fare così
    codice:
    function CambiaLingua(ss){
    	var lng=ss.options[ss.selectedIndex].value
    	var re=/((\?|&)lng=)[^&]*?(&|$)/gi
    	var qs=document.location.search
    	if(re.test(qs)){ //se il parametro lng è presente
    		qs=qs.replace(re,'$1'+lng+'$3')
    	}
    	else{ //se ilparametro lng non è presente
    		if(qs==''){ //se non c'è nessun parametro
    			qs='?lng='+lng
    		}
    		else{ //se c'è qualche parametro
    			qs+='&lng='+lng
    		}
    	}
    	document.location.href=document.location.hash+qs
    }
    </script>
    <form>
    <SELECT name="lingua" onChange="CambiaLingua(this)"> 
    <OPTION value="1033">ENGLISH 
    <OPTION value="1040" selected>ITALIANO</OPTION>  
    </SELECT>
    </form>

  6. #6
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    grazie willybit mitico come sempre.

    ricevo però un errore di mancato oggetto, e non fa il refresh in lingua inglese, da cosa può dipendere?
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    l'esempio che ti ho fatto l'ho appena provato e funziona... forse dipende da qualcos'altro.
    Hai qualcosa online da vedere?

  8. #8
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da willybit
    l'esempio che ti ho fatto l'ho appena provato e funziona... forse dipende da qualcos'altro.
    Hai qualcosa online da vedere?
    no, online non ho nulla....
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  9. #9
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    però lo stò provando da solo, senza altro codice... ma se cè già lng in querystring non me lo cambia!
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    non mi risulta....
    io ho fatto le prove senza niente in querystring, con solo lng, con lng e altri parametri
    e funziona in tutti i casi
    posta un esempio che faccio copia e incolla per provarlo

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.