Hinweise


Antwort
 
LinkBack (1) Themen-Optionen Thema durchsuchen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 07.10.2005, 12:46   1 links from elsewhere to this Post. Click to view. #1
TP-Supporter
 
Registriert seit: Feb 2005
Driver ist auf einem guten Weg

Mit JS auf GET-Variablen zugreifen?


Ahoi,
ich arbeite ja viel mit PHP und auch mit Sachen wie index.php?page=xyz. Da ich aber kaum mit JS arbeite, aber das bei meinem aktuellen Vorhaben doch gerne einbauen möchte, frage ich mcih nun, wie ich mit JS auf die GET-Variable zugreifen kann. Bisher habe ich das so gelöst, dass ich in den JS-Code ein PHP-echo eingebaut habe, aber da gibts sicher eleganteres Lösungen.
Driver ist offline   Mit Zitat antworten


Alt 07.10.2005, 13:25   #2
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
naja... unbedingt eleganter ist es nicht... du kommst nicht direkt an die einzelnen Variablen ran, sondern nur an den query:
Code:
alert(window.location.search);
...wenn ich mich nicht irre

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 07.10.2005, 14:29   #3
TP-Specialist
 
Benutzerbild von rewboss
 
Registriert seit: Mar 2005
Ort: Unterfranken
rewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKE
Mit location.seach kriegst du ein String. Wenn die URL so aussieht:

http://www.domain.com/datei.htm?a=3&b=6

liefert location.search folgenden String:

'?a=3&b=6'

...also inklusiv Fragezeichen. Du musst also mit String.substring() das erste Zeichen rausnehmen, also:

location.search.substring(1, location.search.length) == 'a=3&b=6';

Mit String.split() kannst du dann den String aufteilen, und zwar so:

v=location.search.substring(1, location.search.length).split('&');

Nun ist die Variable v ein Array mit folgenden Elementen:

v[0] == 'a=3'
v[1] == 'b=6'

Nun musst du diese Strings ebenfalls aufteilen und irgendwie den Wert speichern. Am besten machst du das in einem assoziativen Array und einer for/in-Schleife, etwa so:

Code:
v=location.search.substring(1, location.search.length).split('&');
getVars = new Array();

for(var x in v){
 var temp = x.split('=');
 getVars[temp[0]] = temp[1];
}
Nun hat die Variable getVars folgende Elemente:

getVars['a'] == '3';
getVars['b'] == '6';
rewboss ist offline   Mit Zitat antworten
Alt 29.09.2006, 13:02   #4
TP-Junior
 
Registriert seit: May 2006
Ort: Frauenfeld
longnose macht alles soweit korrekt
hm, danke für den nützlichen input. nun ich scheine an der sache was falsch zu machen...

ich habe mich selber mal versucht mit folgendem script

Code:
<script language="javascript" type="text/javascript">
	function promo_banner(){
		v=location.search.substring(1, location.search.length).split('&');
		getVars = new Array();
		for(var x in v){
		 	var temp = x.split('=');
		  	getVars[temp[0]] = temp[1];
		}
		/*alert(getVars['id']);*/
		if(getVars['id']=='30'){document.write('<div id="quickbanner_promo"><img src='bild.jpg'></div>');}
		
	}
	var a;
	a = promo_banner();
</script>
longnose ist offline   Mit Zitat antworten
Alt 29.09.2006, 13:13   #5
TP-Junior
 
Registriert seit: May 2006
Ort: Frauenfeld
longnose macht alles soweit korrekt
im übrigen komme ich auch ohne eine funktion zu verwenden nicht weiter...

liegt das allenfalls daran, dass ich nur eine Variable habe?
longnose ist offline   Mit Zitat antworten
Alt 29.09.2006, 13:56   #6
TP-Junior
 
Registriert seit: May 2006
Ort: Frauenfeld
longnose macht alles soweit korrekt
Die Lösung war dass es sich wohl nur um eine Variable gehandelt hat.
Ich habe den String nun folgendermassen abgefangen:

v=location.search.substring(1, location.search.length);
if(v=='id=30'){ [MEINE ACTION] }

und schaut her, schaut her, die sache funktioniert einwandfrei...
longnose ist offline   Mit Zitat antworten
Alt 16.10.2006, 10:21   #7
TP-Newbie
 
Registriert seit: Oct 2006
IG-FUN macht alles soweit korrekt
Zitat:
Zitat von rewboss
Mit location.seach kriegst du ein String. Wenn die URL so aussieht:

http://www.domain.com/datei.htm?a=3&b=6

liefert location.search folgenden String:

'?a=3&b=6'

...also inklusiv Fragezeichen. Du musst also mit String.substring() das erste Zeichen rausnehmen, also:

location.search.substring(1, location.search.length) == 'a=3&b=6';

Mit String.split() kannst du dann den String aufteilen, und zwar so:

v=location.search.substring(1, location.search.length).split('&');

Nun ist die Variable v ein Array mit folgenden Elementen:

v[0] == 'a=3'
v[1] == 'b=6'

Nun musst du diese Strings ebenfalls aufteilen und irgendwie den Wert speichern. Am besten machst du das in einem assoziativen Array und einer for/in-Schleife, etwa so:

Code:
v=location.search.substring(1, location.search.length).split('&');
getVars = new Array();

for(var x in v){
 var temp = x.split('=');
 getVars[temp[0]] = temp[1];
}
Nun hat die Variable getVars folgende Elemente:

getVars['a'] == '3';
getVars['b'] == '6';

Das klapp soweit wenn ich es direkt über die URL aufrufe.
rufe ich es aber über source auf
Code:
<script src="boxer.js?ppid=123" type="text/javascript"></script>
wird der Wert 123 nicht ausgelesen??

Bitte um HILFE
IG-FUN ist offline   Mit Zitat antworten
Alt 17.10.2006, 12:09   #8
TP-Specialist
 
Benutzerbild von rewboss
 
Registriert seit: Mar 2005
Ort: Unterfranken
rewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKE
Ja, weil es sich hier um ein "Include" handelt und nicht um eine eigene Seite. Es passiert folgendermaßen:

1. Der User besucht eine Seite; etwa http://www.eineWebsite.de/index.html -- also ohne GET-Variablen. Das ist die Adresse, die dann in die Adresszeile im Browser angezeigt wird.

2. Innerhalb dieser Seite steht dein <script>-Tag. Der Browser sendet dann eine Anfrage für boxer.js zusammen mit der GET-Variable ppid=123.

Was passiert? Ändert sich die URL in der Addresszeile? Nein, denn es wird nicht zu einer neuen Seite gewechselt, sondern ein Dokument wird geholt und eingefügt -- und das ist was anderes.

3. Der Server enthält bekommt die Anfrage und die Variable. Er findet boxer.js und stellt fest, er muss nichts damit machen, außer an den Browser zu schicken. Die Variable ppid=123 braucht er dafür nicht: boxer.js ist kein serverseitiges Skript, das auf dem Server ausgeführt wird, sondern ein Dokument, das unverändert ausgegeben werden soll.

4. Der Browser enthält das Skript und fügt es ein. Was steht in der URL? Immer noch dasselbe: der Browser hat nicht seite gewechselt. Die Variable hat er brav an den Server geschickt, aber jetzt hat er sie nicht mehr.

5. Das Skript läuft auf dem Browser. Es liest die in der Adresszeile stehende URL aus, nämlich http://www.eineWebsite.de/index.html -- und findet kein ? und kein ppid=123.

Wenn boxer.js nun diese Variable braucht, dann musst du es so machen:

Code:
<script type="text/javascript">
ppid=123;
</script>

<script type="text/javascript" src="boxer.js"></script>
...dann klappt's.
rewboss ist offline   Mit Zitat antworten
Alt 17.10.2006, 12:20   #9
TP-Newbie
 
Registriert seit: Oct 2006
IG-FUN macht alles soweit korrekt
@rewboss
Vielen Dank, auch für die klasse Erklärung.

Gruß Ingo
IG-FUN ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > HTML Puristen > Javascript
Mit JS auf GET-Variablen zugreifen? Mit JS auf GET-Variablen zugreifen?
« Einzelne Bilder verlinken | PHP JAVASCRIPT MYSQL abhängige dynamische Listen »

LinkBacks (?)
LinkBack to this Thread: http://www.traum-projekt.com/forum/101-javascript/72161-mit-js-get-variablen-zugreifen.html
Erstellt von For Type Datum
Kostenlos Webspace mit PHP, MySQL und FTP | piranho This thread Refback 01.10.2008 18:48

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:02 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67