webForumDet fria alternativet

Byta värde i querystring

JavaScriptur Javascript

29 svar · 918 visningar · startad av Vide

Medlem sedan dec. 19998 577 inlägg
Frågan#1

Tjenare,

Jag har två radiobutton som togglar mellan två olika värden, dessa värden vill jag ha med i querystring, men kan inte använda mig utav formulär i detta fallet.

Hur gör jag för att byta ut värdet intConfValue till nyckeln confidence?

Det bygger på denna koden som anropas vid onclick på varje radiobutton:

function toggleConfidence( intConfValue )
{
  document.location += '&confidence=' + intConfValue;
}

Mvh, Vide

Medlem sedan aug. 20039 340 inlägg
#2

Jag förstår inte riktigt ditt problem?

Medlem sedan dec. 19998 577 inlägg
#3

Andra gången jag trycker på en radiobutton så kommer querystring se ut såhär:
sida.asp?confidence=90&confidence=95

Alltså får jag två värden i confidence, jag vill alltså byta ut det befintliga värdet med det nya.

Medlem sedan juni 20004 308 inlägg
#4
function toggleConfidence( intConfValue )
{
  location.href=location.pathname+"?confidence=" + intConfValue;
}

Kanske?

Medlem sedan maj 200010 687 inlägg
#5

Sen kanske du behöver göra nån extra grej om confidence är först i QueryStringen (?conf...). Men det fixar en duktig kille som du! ;)

function toggleConfidence( intConfValue )
{
  var url = location.href;
  url = url.replace(/\?confidence=[^&]*/gi, "");
  url = url.replace(/&confidence=[^&]*/gi, "");
  url += "&confidence=" + intConfValue;
  location.href = url;
}

Redigering: Fixade ?conf... fallet.

Medlem sedan maj 200010 687 inlägg
#6

Jojoxx, det kan ju finnas andra parametrar med i querystringen. Verkar så på Vide's kod.

Vide, säg att jag har rätt så jag har spöat Jojoxx! ;)

Medlem sedan dec. 19998 577 inlägg
#7

Hehe, jag har oftast andra parametrar innan, men det kan finnas tillfälle där jag inte har det heller kom jag på nu också. ;)

Medlem sedan juni 20004 308 inlägg
#8

Erik Juhlin skrev:

Vide, säg att jag har rätt så jag har spöat Jojoxx!

Eat my shorts! :D

Medlem sedan dec. 19998 577 inlägg
#9

Erik Juhlin skrev:

Redigering: Fixade ?conf... fallet.

Men blir det inte konstigt om det inte finns andra värden? Då kommer det väl att se ut såhär:
sida.asp&confidence=95

... eller?

Medlem sedan maj 200010 687 inlägg
#10

Nöjd nu? :p

function toggleConfidence( intConfValue )
{
	var url = location.href;
	var queryString = "";
	
	if (url.indexOf("?") != -1)
	{
		queryString = url.substr(url.indexOf("?"));
		queryString = queryString.replace("?", "&");
		queryString = queryString.replace(/&confidence=[^&]*/gi, "");
	}
	
	queryString += "&confidence=" + intConfValue;
	queryString = queryString.replace(/^&/, "?");
	
	location.href = location.pathname + queryString;
}
Medlem sedan dec. 19998 577 inlägg
#11

Du är en stor klippa du. Tackar! :D

Medlem sedan aug. 20039 340 inlägg
#12
 
<script language="javascript" type="text/javascript">

function parseQuery(){
 if (location.search) {
  var params = location.search.substring(1, location.search.length).split('&');
  var result = new Array ();
  for (k in params) {
   queryparts=params[k].split('=');
   eval('result.' + queryparts[0] + ' = "' + queryparts[1] + '"');
  }
  return result;
 }
 return new Array();
}

function toggleConfidence( intConfValue ){
 var basehref = location.pathname, baseQuery = parseQuery();
 var padChar = "?";
 baseQuery.confidence = intConfValue;

 for (i in baseQuery){
  basehref += padChar + i + "=" + baseQuery[i];
  padChar = "&"
 }
 location.href = basehref;
}

</script>

Denna kod uppdaterar confidence, alt. lägger till den, och låter alla andra querystrings vara som dom är.

Medlem sedan dec. 19998 577 inlägg
#13

Vad är det för skillnad på din och Eriks kod?

Medlem sedan aug. 20039 340 inlägg
#14

Hmmm. Ingen vad jag kan se. Jag tryckte på skriv inlägg, och började koda. Alltså märkte jag inte att Erik hade hunnit posta nåt under tiden.

Medlem sedan dec. 19998 577 inlägg
#15

Aha, tack ändå, två olika lösningar på samma problem är alltid roligt att se. :D

Medlem sedan maj 200010 687 inlägg
#16

Jag kom på en bättre kod. Man kluddar till det för sig ibland... :OO

function toggleConfidence( intConfValue )
{
	var url = location.href;
	
	url = url.replace(/(&|\?)confidence=[^&]*/gi, "$1confidence=" + intConfValue);
	
	location.href = url;
}

Redigering: Kom på att denna endast funkar om confidence redan finns i querystringen... :l

Medlem sedan maj 200010 687 inlägg
#17

Ultimata?

function toggleConfidence( intConfValue )
{
	var url = location.href;
	
	url = url.replace(/(&|\?)confidence=[^&]*/gi, "$1confidence=" + intConfValue);
	
	if (url.search(/(&|\?)confidence=[^&]*/gi) == -1)
		url += (url.indexOf("?") == -1 ? "?" : "&") + "conficence=" + intConfValue;
	
	location.href = url;
}

Man är nog lite skadad som inte kan släppa detta... :)

Medlem sedan dec. 19998 577 inlägg
#18

Haha, du är ju galen Erik... Det ser ganska ultimat ut i mina otränade ögon iaf ;)

Medlem sedan aug. 20039 340 inlägg
#19

Gulp * :o Jag får anse mig knäckt... bara för att jag inte behärskar reguljära uttryck. Vide, du fick din lösning, och det är väl det som är viktigast... :)

Medlem sedan dec. 19998 577 inlägg
#20

Nu när jag testade scriptet i IE så verkar det inte fungera som det skall, resten av querysträngen är kvar, men "confidence" kommer inte med.

Hur skall jag modifiera för att få det IE-kompatiblet?

136 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)