Javascript ist Toll!

12. September 2006 - 20:32

$_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.

Beispiel

Param_1
Param_2
Param_3
Param_4

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

Comments (16)
36041 mal gelesen.

16 Kommentare

direkt zum Formular »

Seiten:

1. Kommentar von: Michael H.
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. Kommentar von: Templaterie Blog
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 […]

3. Kommentar von: olaf
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 !?!?

4. Kommentar von: olaf
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

5. Kommentar von: christian
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‘);
}
});

});

6. Kommentar von: lars
16. Juni 2009: 21:44

Eine fantastische Funktion.
Danke für diesen tollen Beitrag!

7. Kommentar von: cambridge
18. Juli 2009: 22:50

Hallo,

kann die Variable auch anders verwendet werden

var anzeige = $_GET[‚anzeige‘];
document.write (anzeige);

8. Kommentar von: Struppi
18. Juli 2009: 22:56

Ja.

9. Pingback von: Javascript - Bilder anzeigen - html.de Forum - HTML f
24. August 2009: 16:20

[…] teilweise gleich(also mit einer GET Variable), jedoch w

10. Kommentar von: Gilles
24. August 2009: 16:24

Mal wieder eine tolle Funktion. Vielen Dank =)

11. Kommentar von: Imbericle
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

12. Kommentar von: Struppi
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.

13. Kommentar von: Malcolm
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.

var jsliste = '';
for (i = 1; i < 15; i++) 
  jsliste += ($_GET['site'] == i) 
           ? ''+i+'' 
           : ''+i+'' ;

Gibt sicherlich Elegantere Methoden, aber mir genügt das.

MfG

[…] […]

15. Kommentar von: patrick
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 :)

16. Kommentar von: patrick
12. Juni 2013: 23:38

er hat das nicht übernommen :D

iframe src=“test.php?test=1

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Powered by WordPress Stop Spam Harvesters, Join Project Honey Pot
marketing-bankruptcy
marketing-bankruptcy
marketing-bankruptcy
marketing-bankruptcy