$_GET für Javascript
Wird mal wieder Zeit für ein bisschen Javascript. Da ständig Lösungen von Fragen in Foren bei mir auflaufen, hier eine, um die GET Parameter mit Javascript abzufragen.
Gefragt war, ob es ein JS Äquivalent für die PHP Funktion $_GET()
gibt. Nativ gibt es keine, aber ich hab mal eine geschrieben.
Syntax
Die Syntax lautet:
$_GET([name]); |
name
ist der Name des Parameters, wird name weggelassen,
gibt die Funktion alle Parameter in Form eines Objektes zurück.
Hinweis!
Die Funktion versagt, wenn mehrere Parameter mit dem gleichen Namen
(z.b. bei Mehrfachauswahl eines Auswahlfeldes oder bei einer checkbox group)
übermittelt wurden. In dem Falle wird immer nur der letzte Wert zurück gegeben.
Quellcode
(function(){ var s = window.location.search.substring(1).split('&'); if(!s.length) return; var c = {}; for(var i = 0; i < s.length; i++) { var parts = s[i].split('='); c[unescape(parts[0])] = unescape(parts[1]); } window.$_GET = function(name){return name ? c[name] : c;} }()) |
Nachtrag
OK. Es ist keine Funktion. Wer lieber mit einem globalen Array arbeitet, kann das Skript in leicht geänderter Form verwenden:
(function(){ var s = window.location.search.substring(1).split('&'); if(!s.length) return; window.$_GET = {}; for(var i = 0; i < s.length; i++) { var parts = s[i].split('='); window.$_GET[unescape(parts[0])] = unescape(parts[1]); } }()) |
Jetzt hat man im Skript Zugriff auf jeden GET Parameter über das Objekt $_GET['name']
.
ähnliche Artikel
- 28. November 2024 -- Animierte Tabellen Sortierung (10)
Aufgrund einer Frage bei meinem alten Tabellensortierer-Skript...
- 6. August 2019 -- CAS Nummer validieren (0)
Wieder ein kleines Skript aus dem Bereich Chemie. Um...
- 27. Oktober 2012 -- Tween Beispiele (0)
Das Tween Objekt Ich vertiefe hier noch einmal die...
36041 mal gelesen.
16 Kommentare
direkt zum Formular »
Seiten:
27. September 2006: 10:21
es gibt in PHP kein $_GET(), das wäre nämlich eine Funktion. Bitte die runden Klammern weglassen, dann stimmt es ($_GET ist wie $_POST, $_SESSION,… ein superglobales ARRAY).
äbrigens wärde ich in JS mit $ aufpassen, viele Leute benutzen in der Zwischenzeit Prototype, dort ist $() eine Funktion, gibt also leicht Verwirrung…
2. Februar 2008: 5:56
[…] Das PHP $_GET[’var’] und das Javascript-Equivalent / Javascript: replace() so wohl nicht Silke Schümann wrote this 05:56:Die Funktion, die ich bei struppi aka J. Strübig gefunden habe, zählt sicherlich zu den Dingen, die man sich in seine Library einverleiben sollte: javascript.jstruebig.de: $_GET für Javascript […]
13. Juni 2008: 17:33
also das skript ist schon komplett es hats nur falsch kopiert.
aber die zuweisung für die nachfolgende aktion ist wohl falsch:
$_GET[‚id‘] = $id;
if ($id == ‚1‘)
flash(http://www.choiz.extra.hu/Games/roulette.swf);
else
return false;
ich will je nach id ein bestimmtes video abspielen, also geb ich den videos ids und starte dann durch ein skript eine andere javafunktion mit der zielurl !?!?
13. Juni 2008: 17:30
hi, ich kriege das skirpt einfach nicht zum laufen.
kannst du das nciht ein bisschen genauer beschreiben wie ich dadurch ids auslesen ?
ich versteh auch nicht was dievielen runden klammern sollen, ich habs so versucht:
function()
{
var s = window.location.search.substring(1).split(‚&‘);
if(!s.length) return;
window.$_GET = {};
for(var i = 0; i
$_GET[‚id‘] = $id;
if ($id == ‚1‘)
flash(http://xxx/Games/roulette.swf);
else
return false;
was ist falsch?
danke
15. Oktober 2008: 11:48
so gehts – aufruf erfolgt bspw. mit
–a href=’dateiname.php?anzeige=3′–
(function()
{
var s = window.location.search.substring(1).split(‚&‘);
if(!s.length) return;
window.$_GET = {};
for(var i = 0; i < s.length; i++)
{
var parts = s[i].split(‚=‘);
window.$_GET[unescape(parts[0])] = unescape(parts[1]);
}
}())
window.addEvent(‚domready‘, function() {
var anzeige = $_GET[‚anzeige‘]; // holt die Variable ‚anzeige‘ aus der URL (GET-Parameter)
if (!anzeige) { anzeige = „0“; } // setzt ‚anzeige‘ auf 0, falls ‚anzeige‘ nicht existiert
//create our Accordion instance
var myAccordion = new Accordion($(‚accordion‘), ‚h3.toggler‘, ‚div.element‘, {
opacity: false,
display: anzeige, // oeffnet das Element, das durch ‚anzeige‘ gewaehlt wurde
onActive: function(toggler, element){
toggler.setStyle(‚background‘, ‚#fff url(bilder/pfeil.gif) no-repeat center right‘);
},
onBackground: function(toggler, element){
toggler.setStyle(‚background‘, ‚#eee url(bilder/pfeil.gif) no-repeat center right‘);
}
});
});
16. Juni 2009: 21:44
Eine fantastische Funktion.
Danke für diesen tollen Beitrag!
18. Juli 2009: 22:50
Hallo,
kann die Variable auch anders verwendet werden
var anzeige = $_GET[‚anzeige‘];
document.write (anzeige);
18. Juli 2009: 22:56
Ja.
24. August 2009: 16:20
[…] teilweise gleich(also mit einer GET Variable), jedoch w
24. August 2009: 16:24
Mal wieder eine tolle Funktion. Vielen Dank =)
24. August 2009: 17:51
Das Turtorial ist gut, nur für jemanden der nicht schon absolut perfekt in php javascript und cgi ist es sicherlich schwer,
für jemanden der grad halb beides kann ist es gift
und für mich als mittel ding von beiden war es nicht einfach es zu verstehen.
Mach das doch noch ausführlicher, mit noch tiefergehenderen sinnvollereren Beispielen.
Je mehr praktisch man ein Beispiel anwenden kann desto besser, das oben ist ein sehr kurzes, mit viel zu wenig erklärungen
MfG
24. August 2009: 20:54
Ich weiß selber nicht wofür man sowas braucht. Wie ich schon schrieb es ist eine Fragestellung, die öfters in Foren auftaucht.
15. Januar 2010: 9:39
Hi Struppi,
Danke für dieses Script.
Wofür man es nutzen kann ist, Bspw. wenn man eine Pagination Dynamisch mit Javascript erzeugt, kann man mit hilfe der GET_Parameter die Aktuelle Seite „entlinken“, also das a-Element durch etwas geeigneteres austauschen.
Gibt sicherlich Elegantere Methoden, aber mir genügt das.
MfG
20. März 2012: 15:48
[…] […]
12. Juni 2013: 23:36
hey ich komm überhaupt nicht weiter, und zwar möchte ich die übergebende GET in ein ausführen aber in der test datei kommt nur undefindet an !! was kann ich machen :)
12. Juni 2013: 23:38
er hat das nicht übernommen :D
iframe src=“test.php?test=1