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??
![]()
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??
![]()
Ciao Rossella_75 (grande annata il '75)
io per gestire le querystring in javascript mi sono fatto questa funzioncina
che nel tuo caso potresti usare così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 }
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 replacecodice: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)
codice:var nuovoId=100 var newURL = document.location.href.replace(/(id=)[^&]*(&?)/gi,'$1'+nuovoId+'$2'); alert(newURL)![]()
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![]()
:master: non ho capitoOriginariamente inviato da Rossella_75
allora io nella variabile datesel ricevo il valore correttamente, ma come posso sapere da quale variabile arriva il valore??
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
ma se io vorrei ottenere in un altra variabile il numero che segue la variabile?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
ad esempio
miavar = 449-450
come posso fare?
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)
mm... no scusa cosi viene fuori
mentre in questo caso dovrebbe venir fuori solocodice:dataselezionata421=DAL+8/4/2006+AL+15/4/2006 dataselezionata422= dataselezionata423=
codice:421
oppure in una situazione cosi
dovrebbe venir fuoricodice:dataselezionata421=DAL+8/4/2006+AL+15/4/2006 dataselezionata422= dataselezionata423=DAL+22/4/2006+AL+29/4/2006
in pratica solo i numeri corrispondenti alle variabili valorizzatecodice:421-423
:master: è possibile??
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>![]()
ho fatto cosi, ti posto tutto il codice, ma l'alert è vuoto...
ad esempio la location adesso era cosi
non capisco...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)![]()
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)![]()