JS : GET variabelen laden

Door Rens nvt, 17 jaar geleden, 3.382x bekeken

Goedemorgen allemaal,

Ik zat laatst even voor het blok toen ik in een omgeving zonder server-side mogelijkheden toch wilde gaan werken met GET variabelen. Misschien een compleet onzinnig scriptje omdat je nooit in een omgeving zonder PHP werkt, maar mocht je het ooit nodig hebben in een slecht dichtgetimmerd CMS waar je alleen maar een gebruiker bent, leef je dan uit zou ik zeggen ;-)

Als je dit scriptje gebruikt zijn alle variabelen aan te roepen via _get["key"], als tegenhanger van $_GET["key"]

Note: Jos heeft ook een kortere versie aangeleverd voor dit script die werkt met functies, en de variabele retourneert. Ik heb deze ook toegevoegd (het 2e script). Top Jos!

Gesponsorde koppelingen

PHP script bestanden

  1. js-get-variabelen-laden

 

Er zijn 25 reacties op 'Js get variabelen laden'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


17 jaar geleden
 
0 +1 -0 -1
Mooi script

Zet even <?php om in <? of niks het is en blijft JavaScript
Rens nvt
Rens nvt
17 jaar geleden
 
0 +1 -0 -1
@Webmakerij: thanks voor het aanpassen :p dit is inderdaad beter :-)
Eris -
Eris -
17 jaar geleden
 
0 +1 -0 -1
Even voor de highligting php tags toegevoegd. Werkt makkelijker ;)
- -
- -
17 jaar geleden
 
0 +1 -0 -1
voor de mensen die met frames werken is dit een betere oplossing:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
  var _get = Array();
  _get['self'] = Array();
  _get['top'] = Array();
  var
urlSplit = Array();
  urlSplit['self'] = self.location.href.split('?')[1];
  urlSplit['top'] = top.location.href.split('?')[1];
  foreach (urlSplit as key => array)
  {

    if (array)
    {

      array = array.split('&');
      for (i = 0; i < array.length; i ++)
      {
        var
value = array[i].split('=');
        _get[key][value[0]] = value[1];
      }
    }
  }

?>

Verder kan je
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
      for (i = 0; i < array.length; i ++)
      {
        var
value = array[i].split('=');
        _get[key][value[0]] = value[1];
      }

?>

ook vervangen door
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
      foreach (array as value)
      {
        var
value = value.split('=');
        _get[key][value[0]] = value[1];
      }

?>
Rens nvt
Rens nvt
17 jaar geleden
 
0 +1 -0 -1
Jonathan,

Die foreach wijziging is wel praktisch, maar niet helemaal juist ;-)

Ik heb een gewijzigde versie in het script gezet...

Thanks!

P.S. Het is "verder kUn je" :p
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
Je kan de query string ook zo krijgen:

window.location.search.substr(1)
K i p
K i p
17 jaar geleden
 
0 +1 -0 -1
Krijg het niet werkend.

Doe ik iets fout?:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


<
html>
<
head>
    <
title>blabla</title>
    <
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    
    <
style type="text/css" media="screen">
        @
import "style.css";
    <
/style>
    <
script type="text/javascript">
// Array aanmaken waarin de variabelen worden geplaatst
  var _get = Array();

  // Declareer variabele waar alle data vanaf het vraagteken in de url staat
  var urlSplit = location.href.split("?")[1];
  if (urlSplit) {
    // Vul de array alleen als er daadwerkelijk variabelen meegegeven zijn
    // Deel urlSplit op op de plaatsen waar een &-teken staat

    urlSplit = urlSplit.split("&");

    // Plaats alle variabelen + waarde in _get array
    foreach (urlSplit as varSplit) {
        // Zoek de naam en waarde op, en plaats deze in de array
        var value = varSplit.split("=");
        _get[value[0]] = value[1];
    }
  }

</script>

</head>

<body>
    <div id="container">
        <script type="text/javascript">
            document.write(_get["lala"]);
        </script>


    </div>
</body>
</html>

?>
Rens nvt
Rens nvt
17 jaar geleden
 
0 +1 -0 -1
@Boris, nee, je doet niets fout...

Ik heb iets fout gedaan, en dat was blind naar Jonathan luisteren... de functie foreach bestaat niet in Javascript. Je moet de foreach lus dus even verwijderen, en vervangen door onderstaande code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
    // Plaats alle variabelen + waarde in _get array
    for (i = 0; i < urlSplit.length; i ++) {
        var value = urlSplit[i].split("=");
        _get[value[0]] = value[1];
    }


Ik heb het script hierboven ook weer aangepast
The Hosh
The Hosh
17 jaar geleden
 
0 +1 -0 -1
oh vet.. kun je iets meer met html en JS dan normaal :D maar is het mogelijk dit te doen met formulier die post methode gebruiken, dus ipv $_POST ??
greetzz
Eris -
Eris -
17 jaar geleden
 
0 +1 -0 -1
Nee dat gaat niet..
Jelle -
Jelle -
17 jaar geleden
 
0 +1 -0 -1
Leuke toevoeging :-)
Majid Ahddin
Majid Ahddin
17 jaar geleden
 
0 +1 -0 -1
Quote:
P.S. Het is "verder kUn je" :p

lul niet, beide goed

Je kan, dus kan je.
Luke Banning
Luke Banning
17 jaar geleden
 
0 +1 -0 -1
@Rens Admiraal & Rudie d.

Vroeger was het kun je, nu is het allebei goed. Nieuwe spelling ;-)
Vind het ook niet klinken maarja, denk dat het door de 'jeugd' komt (waar ik zelf ook bij behoor :P)
Majid Ahddin
Majid Ahddin
17 jaar geleden
 
0 +1 -0 -1
Het was 'vroeger' ook al goed. Het is al minstens 11 jaar goed

Maareh boeiend :)

Wat is hier nou het nut van? Van het script dus? Wanneer zou je get vars willen ontvangen buiten php?? Wat ga je er dan mee doen? Gewoon benieuwd... Het is wel een leuk script hoor
K i p
K i p
17 jaar geleden
 
0 +1 -0 -1
Ik citeer:
Quote:
Ik zat laatst even voor het blok toen ik in een omgeving zonder server-side mogelijkheden toch wilde gaan werken met GET variabelen.
Moo
moo
17 jaar geleden
 
0 +1 -0 -1
wat doen jullie toch moeilijk omdat sommige van (ons)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? gebruiken inplaats van [code]<?php het maakt nl geen donder uit!
Jos
Jos
17 jaar geleden
 
0 +1 -0 -1
Dit kan binnen 3 lijnen :-D ?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
function _get(s,doel) {
    if(!doel) doel=window;
    if(!doel.location.search) return '';
    return (doel.location.search.match(new RegExp(s+'=([^&]+)'))[1]);
}
Rens nvt
Rens nvt
17 jaar geleden
 
0 +1 -0 -1
en dan roep je de waarde dus op met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
_get("naam");


of:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
_get("naam", "parent");


toch?
Jos
Jos
17 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
/*
Deze functie geeft een lege string of null terug wanneer het niet lukt de
get variabel op te halen, en geeft een string terug met de waarde van de get variabel als deze aanwezig is.

s , string, Naam van get variabel
doel, object, Doelobject waar get variabel vandaan moet komen
*/
function _get(s,doel) {
    if(!doel) doel=window;
    if(!doel.location.search) return '';
    return (doel.location.search.match(new RegExp(s+'=([^&]+)'))[1]);
}


Voorbeelden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
_get("naam", parent);
_get("naam", top);
Rens nvt
Rens nvt
17 jaar geleden
 
0 +1 -0 -1
Netjes Jos!!!

Ik zet hem bij het script! Thanks!
Jos
Jos
17 jaar geleden
 
0 +1 -0 -1
Hehe, jij ook bedankt voor het erbij zetten ;-)
Rens nvt
Rens nvt
17 jaar geleden
 
0 +1 -0 -1
Hmmz... Ook mijn versie kon iets korter ;-) Maar jah, liever 4 regels meer dan minder overzicht ;-)
*lol*
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
var _get = Array();
if (location.href.split("?")[1]) {
    for (i = 0; i < location.href.split("?")[1].split("&").length; i ++) {
        _get[location.href.split("?")[1].split("&")[i].split("=")[0]] = location.href.split("?")[1].split("&")[i].split("=")[1];
    }
}
Stefan
Stefan
17 jaar geleden
 
0 +1 -0 -1
Quote:
moo schreef op 21.11.2006 20:25
wat doen jullie toch moeilijk omdat sommige van (ons)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<? gebruiken inplaats van [code]<?php het maakt nl geen donder uit![/quote]

Dit maakt zeker wel uit, niet alle browsers herkennen [code]<? vandaar dat je gewoon standaard [code]<?php moet neerzetteN!
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
@Stefan: browsers?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
GreatSlovakia
GreatSlovakia
17 jaar geleden
 
0 +1 -0 -1
dit script heb ik een jaar geleden ofzo op websitemaken.be gepost
[script]
function GET(vari){
URI = document.location.href
URI2 = URI.split("?")
if(URI2[1]){
URI3 = URI2[1].split("&")
for(i=0;i < URI3.length; i++){
URI4 = URI3.split("=")
if(URI4[0] == vari){
return URI4[1]
}
}
}else{
return false;
}
}
[/script]

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. js-get-variabelen-laden

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.