ugrás a tartalomhoz

URL manipuláció Javascripttel

kalamona · 2007. Okt. 7. (V), 22.34
sziasztok!

szeretném megoldani js-ben az alábbi processzust:
- aktuális url lekérdezése
- egy form selectjéből a választás lekérdezése
- a formból kiválasztott menupontjából nyert sztring hozzáfűzése
- az így nyert url-re ugrás

vagy messziről szaglik, hogy az egészet máshogy kéne? :)
 
1

annyi eszem van

kalamona · 2007. Okt. 7. (V), 23.04
hogy volt már több is. szóval az elsősorban azt szeretném tőletek megkérdezni, hogyan kell ezt kivitelezni. másodsorban pedig hogy miért badarság már csak az ötlet is. ha az.
2

egyszerű

bado · 2007. Okt. 8. (H), 09.05
Az url-t lekérdezni/beállítani a window.location-el tudod, azt meg, hogy melyik van kiválasztva a selectből a select object selectedIndex függvényével kapod meg. pl: document.forms[0].select.selectedIndex
És ha mondjuk a selectnek az onChange eseményéhez hozzárendeled a függvényed, akkor minden szuperül fog menni. Badarságnak meg nem badarság szerintem, ha ez kell, akkor ez kell:)

bado
3

nagyobbnak nézett ki :)

kalamona · 2007. Okt. 8. (H), 09.22
kösziköszi! első szárnypróbálgatások. közben kiderítettem, hogy nem olyan veszedelmes. viszont egy okossabb manipulűció lenn az igazi. azaz ha egy meglévő url paramétert állítgatnék.

- ha létezik, módosítjuk
- ha nem létezik létrehozzuk

hogyan érhetem el az egyes paramétereket név szerint? hogyan vizsgálhatom az érétéküket?
4

én így csinálnám

bado · 2007. Okt. 8. (H), 13.25
lehetne regexp nélkül is, de így kényelmesebb:)

's' a paraméter, amit meg akarsz változtatni.

var url = window.location.href;
var ujertek = "ezlegyen";
if (/s=(.*)&/i.test(url) || /s=(.*)$/i.test(url)) {
	url = url.replace(/s=(.*)/i,"s="+ujertek+"&");
}
else {
	if (/\?.*/.test(url)) {
		url = url+"&s="+ujertek;
	}
	else {
		url = url+"?s="+ujertek;
	}
}
window.location = url;
annyi a baj vele, hogy ha volt már más paraméter is, és az 's' is benne volt az urlben, akkor ami az 's' mögött van, azt felülírja, de ezt már meghagyom neked:P

bado
5

Rövidebben

Fraki · 2007. Okt. 9. (K), 16.14
Rövidebben

url = window.location.href;

window.location.href = url.replace(
    /([?&]s=)(.*?)(&|$)(?!=amp;)/ig,
    '$1' + ujertek + '$3'
);
6

Mire használnád?

Jano · 2007. Okt. 9. (K), 18.02
A kérdés, hogy mire használnád?

Oldal váltásra select helyett inkább linkek?
Vagy ha adat is van a dologban szerver oldalon átirányítás?