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

Discussione: location search

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    location search

    ciao a tutti

    ho un problemino con la location e non sò come risolverlo

    io devo recuperare la location ad esempio questa e cambiare solo il valore di id


    come posso fare??


  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao Rossella_75 (grande annata il '75)

    io per gestire le querystring in javascript mi sono fatto questa funzioncina
    codice:
    function objQueryString(qs){ 
      var dic = new Array()
      if(!qs) qs = location.search
      if(qs!=''){
        var aQs = qs.replace(/^\?/,'').split('&')
        for(i=0;i<aQs.length;i++){
          aPV = aQs[i].split('=')
          dic[aPV[0]]=unescape(aPV[1])
        }
      }
      return dic
    }
    che nel tuo caso potresti usare così
    codice:
    var nuovoId=100 //il nuovo valore per il parametro id
    var qs = objQueryString()
    var newURL=document.location.pathname+'?'
    for(parametro in qs)
      if(parametro.toLowerCase()=='id')
        newURL+=parametro+'='+nuovoId+'&'
      else
        newURL+=parametro+'='+qs[parametro]+'&'
    alert(newURL)
    ti ho postato questa funzione perché potrebbe essere utle per altre operazioni con querystring... però per la tua richiesta si potrebbe risolvere velocemente con un replace
    codice:
    var nuovoId=100
    var newURL = document.location.href.replace(/(id=)[^&]*(&?)/gi,'$1'+nuovoId+'$2');
    alert(newURL)

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    scusatemi se riesumo questa discussione ma mi rimane difficile spiegarmi meglio,
    allora io nella variabile datesel ricevo il valore correttamente, ma come posso sapere da quale variabile arriva il valore??
    codice:
    function objQueryString(qs){ 
      var dic = new Array()
      if(!qs) qs = location.search
      if(qs!=''){
        var aQs = qs.replace(/^\?/,'').split('&')
        for(i=0;i<aQs.length;i++){
          aPV = aQs[i].split('=')
          dic[aPV[0]]=unescape(aPV[1])
        }
      }
      return dic
    }
    
    var qs = objQueryString();
    var cerca = 'dataselezionata';
    var nn=''
    var datesel=''
    
    for(xx in qs){
      if(xx.substr(0,cerca.length)==cerca){
        nn+=xx.substr(cerca.length)+'-'
    	datesel += qs[xx]+'\n';
    	var re = /\+/g
    	datesel = datesel.replace(re," ")
    
      }
    }

    grazie mille

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da Rossella_75
    allora io nella variabile datesel ricevo il valore correttamente, ma come posso sapere da quale variabile arriva il valore??
    :master: non ho capito

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    grazie alla tua funzione riesco a prelevare il valore di una variabile (dataselezionata) passata in location

    ad esempio da questa location io prendo entrambi i valori delle variabili in grassetto

    codice:
    http://localhost/Html/prima_fase.php?dataselezionata449=DAL+8%2F4%2F2006+AL+15%2F4%2F2006&dataselezionata450=DAL+15%2F4%2F2006+AL+22%2F4%2F2006
    ma se io vorrei ottenere in un altra variabile il numero che segue la variabile?

    ad esempio

    miavar = 449-450

    come posso fare?

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    non so se ho capito bene... prova questo esempio
    codice:
    var qs = objQueryString();
    var inizioVariabile='dataselezionata';
    var miavar=''
    var valori=''
    for(parametro in qs){
      if(parametro.substr(0,inizioVariabile.length)==inizioVariabile){
        miavar+=parametro.substr(inizioVariabile.length)+'-'
        valori+=qs[parametro]+'-'
    	document.write(parametro+'='+qs[parametro]+'
    ');
      }
    }
    if(miavar.length>0)miavar=miavar.substr(miavar,miavar.length-1); //tolgo il - in più
    if(valori.length>0)valori=valori.substr(valori,valori.length-1); //tolgo il - in più
    alert(miavar+'\n'+valori)

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    mm... no scusa cosi viene fuori

    codice:
    dataselezionata421=DAL+8/4/2006+AL+15/4/2006
    dataselezionata422=
    dataselezionata423=
    mentre in questo caso dovrebbe venir fuori solo

    codice:
    421

    oppure in una situazione cosi
    codice:
    dataselezionata421=DAL+8/4/2006+AL+15/4/2006
    dataselezionata422=
    dataselezionata423=DAL+22/4/2006+AL+29/4/2006
    dovrebbe venir fuori
    codice:
    421-423
    in pratica solo i numeri corrispondenti alle variabili valorizzate

    :master: è possibile??

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    codice:
    <script language="javascript">
    function objQueryString(qs){ 
    	var dic = new Array()
    	if(!qs)	qs = location.search
    	if(qs!=''){
    		var aQs = qs.replace(/^\?/,'').split('&')
    		for(i=0;i<aQs.length;i++){
    			aPV = aQs[i].split('=')
    			dic[aPV[0]]=unescape(aPV[1].replace(/\+/g,' '))
    		}
    	}
    	return dic
    }
    
    var qs = objQueryString();
    var inizioVariabile='dataselezionata';
    var miavar=''
    for(parametro in qs){
      if(parametro.substr(0,inizioVariabile.length)==inizioVariabile && qs[parametro]!=''){
        miavar+=parametro.substr(inizioVariabile.length)+'-'
        valori+=qs[parametro]+'-'
    	document.write(parametro+'='+qs[parametro]+'
    ');
      }
    }
    if(miavar.length>0)miavar=miavar.substr(miavar,miavar.length-1); //tolgo il - in più
    alert(miavar)
    </script>

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ho fatto cosi, ti posto tutto il codice, ma l'alert è vuoto...
    ad esempio la location adesso era cosi

    codice:
    function objQueryString(qs){ 
      var dic = new Array()
      if(!qs) qs = location.search
      if(qs!=''){
        var aQs = qs.replace(/^\?/,'').split('&')
        for(i=0;i<aQs.length;i++){
          aPV = aQs[i].split('=')
          dic[aPV[0]]=unescape(aPV[1])
        }
      }
      return dic
    }
    
    var qs = objQueryString();
    var cerca = 'dataselezionata';
    var nn=''
    var datesel=''
    
    for(xx in qs){
      if(xx.substr(0,cerca.length)==cerca){
        nn+=xx.substr(cerca.length)+'-'
    	datesel += qs[xx]+'\n';
    	var re = /\+/g
    	datesel = datesel.replace(re," ")
    
      }
    }
    
    function objQueryString1(qs1){ 
    	var dic = new Array()
    	if(!qs)	qs = location.search
    	if(qs!=''){
    		var aQs = qs.replace(/^\?/,'').split('&')
    		for(i=0;i<aQs.length;i++){
    			aPV = aQs[i].split('=')
    			dic[aPV[0]]=unescape(aPV[1].replace(/\+/g,' '))
    		}
    	}
    	return dic
    }
    
    var qs1 = objQueryString1();
    var inizioVariabile='dataselezionata';
    var miavar=''
    for(parametro in qs1){
      if(parametro.substr(0,inizioVariabile.length)==inizioVariabile && qs1[parametro]!=''){
        miavar+=parametro.substr(inizioVariabile.length)+'-'
        valori+=qs1[parametro]+'-'
    	document.write(parametro+'='+qs1[parametro]+'
    ');
      }
    }
    if(miavar.length>0)miavar=miavar.substr(miavar,miavar.length-1); //tolgo il - in più
    alert(miavar)
    non capisco...

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    la funzione objQuesryString non devi duplicarla, ne basta una...
    codice:
    function objQueryString(qs){ 
    	var dic = new Array()
    	var aPV
    	if(!qs)qs = location.search
    	if(qs!=''){
    		var aQs = qs.replace(/^\?/,'').split('&')
    		for(i=0;i<aQs.length;i++){
    			if(aQs[i].indexOf('=')<0)aQs[i]+='=';
    			aPV = aQs[i].split('=');
    			dic[aPV[0]]=unescape(aPV[1].replace(/\+/g,' '));
    		}
    	}
    	return dic
    }
    
    var qs = objQueryString();
    var cerca = 'dataselezionata';
    var nn=''
    var datesel=''
    
    for(xx in qs){
      if(xx.substr(0,cerca.length)==cerca){
        nn+=xx.substr(cerca.length)+'-'
    	datesel+= qs[xx]+'\n';
      }
    }
    
    var qs1 = objQueryString();
    var inizioVariabile='dataselezionata';
    var miavar=''
    var valori=''
    
    for(parametro in qs1){
      if(parametro.substr(0,inizioVariabile.length)==inizioVariabile && qs1[parametro]!=''){
        miavar+=parametro.substr(inizioVariabile.length)+'-'
        valori+=qs1[parametro]+'-'
    	document.write(parametro+'='+qs1[parametro]+'
    ');
      }
    }
    if(miavar.length>0)miavar=miavar.substr(miavar,miavar.length-1); //tolgo il - in più
    alert(miavar)

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.