# Teile aus der URL auslesen und mit JavaScript weiterverarbeiten



## Black Panter (20. Februar 2009)

Hi,

ich habe eine URL in folgender Form: http://www.hostname.de/website.html?[variable]=[wert]

ich brauche sowohl [variable] als auch [wert] und will dann beide Werte mit JavaScript weiterverarbeiten.

Google hat mir bisher nicht leider nicht weitergeholfen. Die Treffer, die ich bei suchbegriffen wie: "Zeichenkette aus String extrahieren", usw. bekommen habe, haben mir nicht weitergeholfen.

Grüße aus Japan
Sören-san


----------



## BugsBastard (20. Februar 2009)

Hi,

mit Javascript kannst du PHP-Variablen nicht bearbeiten, das weißt du hoffentlich  Du kannst höchstens die PHP-Variablen per echo oder print an Javascript übergeben

z.B. (ungetestet)
	
	
	



```
<script type='text/javscript'>
var url = "<?php echo $_PHP_SELF ?>";
var arr_werte = Array();
var arr1 = url.split("?");
if(arr1[1]!=undefined){
  var arr2 = arr[1].split("&");
  for(var i = 0; i<arr2.length; i++){
    var arr3 = arr2[i].split("=");
    arr_werte[arr3[0]] = arr3[1];
  }
}
</script>
```

So erhält 
	
	
	



```
arr_werte[name]=variablenwert
```

z.B. würde folgende URL
http://www.test.de?test1=super&test2=genial

dieses Ergebnis bringen:

```
arr_werte['test1']=super
arr_werte['test2']=genial
```
Du kannst natürlich auch erst die Variablen per PHP auslesen und direkt an Javascript übergeben  ist vielleicht sogar noch einfacher. Für das Beispiel über brauchst noch nicht mal PHP da du auch per Javascript die URL auslesen könnten (document.location.href müsste das sein)

Aber per Javscript änderst du NIE die PHP-Variablen  das ist so weil PHP ja zuerst aufgeführt wird und danach erst Javascript. 

Gruss,

Bugs


----------



## Black Panter (20. Februar 2009)

Die PHP-Variable will ich auch gar nicht mit JavaScript verändern.

[variable] soll der Name einer XML-Datei sein, die ich mit simplexml_load_file('') laden will.

Jetzt habe ich das Problem, das ich net finde, wie ich die Anzahl der XML-Tags auslesen kann um mir anschließend Attribute auslesen zu lassen.

in JavaScript würde das Laden der XML-Datei so aussehen:


```
o = null;
if(window.XMLHttpRequest)
{o = new XMLHttpRequest();}
else if(window.ActiveXObject)
{
 try
 {o = new ActiveXObject('Msxml2.XMLHTTP');}
 catch(e1)
 {try
  {o = new ActiveXObject('Microsoft.XMLHTTP');}
  catch(e2)
  {}
 }
}

o.open('GET',url,false) //Laden der XML-Datei
o.send(null);
x = o.responseXML.documentElement;
```

Wenn ich dies jedoch damit mache, wird mir in der Fehlerkonsole gesagt, das ich nicht auf die XML Datei zugreifen darf.

Also Probiere ich es jetzt mit PHP.
Vorher habe ich es mit Perl probiert, aber dort konnte ich die XML-Datei nur laden, wenn ich den absoluten Pfad angegeben habe. Bei dem relativen Pfad zur XML-Datei kam immer eine Fehlermeldung.

P.S. Ein Kumpel hat mir nen Tipp gegeben womit ich die URL-Teile folgendermaßen auslese: 
	
	
	



```
$url =  $_SERVER["QUERY_STRING"];
$variable = substr($url, 0, strpos($url, "="));
$wert = substr($url, strpos($url1, "=")+1, strlen($url));
```


----------



## kuddeldaddeldu (20. Februar 2009)

Hi,



Black Panter hat gesagt.:


> P.S. Ein Kumpel hat mir nen Tipp gegeben womit ich die URL-Teile folgendermaßen auslese:
> 
> 
> 
> ...



 

Dein Kumpel kann nicht mehr PHP als Du. 
Den "wert" findest Du ganz automatisch in $_GET['variable'].

Den Rest Deines Anliegens habe ich leider nicht verstanden.

LG


----------



## Black Panter (21. Februar 2009)

Ich brauch nicht nur den Wert der Variablen, sondern auch den Variablennamen selber.


----------



## ZodiacXP (21. Februar 2009)

```
foreach ($_GET as $key=>$value)
{
  // für Java als "Name = Wert" mit Zeilenumbruch ausgeben
  echo "$key = '$value';\n";
  // und sonst noch was machen...
  // ...
}
```

Danke das trifft es. Dies ist eine Schleife, die so oft durchläuft wie es "Variablen" in der URI gibt, wobei jeweils $key der "Variablenname" ist und $value der dazugehörige Wert.


----------



## JayJayS (12. Juli 2012)

Ich möchte das Thema nochmal aufgreifen auch wenn es schon etwas älter ist und eigentlich im falschen Bereich eröffnet wurde.

Ich möchte auf einer Seite die einen Teil der URL auslesen und zwar handelt es sich um eine Id in mehrstelliger Zahlenform.

Beispiel 1:
http://www.domain.tld/dokumenttitel-x123456789

Beispiel 2:
http://www.domain.tld/x/123456789/dokumenttitel

Ich möchte in beiden Beispielen jeweils nur den ID-Wert (123456789) mit Javascipt auslesen und in Javascript weiterverarbeiten.

Mit

```
<script type="text/javascript">document.writeln(document.URL);</script>
```

Kann ich zwar die gesamte URL ausgeben, aber wir ich die auf den ID-Wert reduzieren kann, ist mir bisher noch keine Idee gekommen.
Vielleicht hat ja einer von euch einen Lösungsvorschlag...

MfG
JayJayS


----------

