JavaScript Variable an PHP übergeben?

redlama

Erfahrenes Mitglied
Moin!

Wie kann ich eine Variable aus JavaScript an PHP übergeben?
Ich habe mir via JavaScript die Bildschirmauflösung des Users geholt (zumindest die Höhe).
Jetzt will ich diesen Wert an PHP übergeben, da ich mit dem Wert etwas berechnen will.
Kann mir da einer weiter helfen?
Hier mein momentaner JavaScript Code:
Code:
<script type='text/javascript'>
<!--
   document.write(screen.height);
//-->
</script>

redlama
 
versuch es mal damit:

<script type='text/javascript'>
<!--
var y = document.write(screen.height);
window.location.href = "deine_datei.php?hoehe=" + y;

//-->
</script>
 
Gibt es sowas auch für den Fall, dass ich den PHP Code in der selben Datei stehen habe wie den JavaScript Code? :confused:

redlama
 
Du könntest es wie folgt versuchen:
HTML:
<script type="text/javascript">
	function init() {
		var parameters = 'width=' + screen.width + '&height=' + screen.height;
		var head = document.getElementsByTagName('head');
		var newScript = document.createElement('script');
		newScript.setAttribute('type', 'text/javascript');
		newScript.setAttribute('src', 'javascript.php?' + parameters);
		head[0].appendChild(newScript);
	}
	onload = init();
</script>
javascript.php:
PHP:
<?php

	header('Content-Type: text/javascript');

	echo 'onload = alert("Bildschirmauflösung: '.$_GET['width'].' x '.$_GET['height'].'");';
	[…]
?>

Ist möglicherweise etwas kompliziert, funktioniert aber.
 
Oh, ich merke gerade, dass du an der ensprechenden Position einen Text einfügen möchtest. Dazu sollte folgendes benutzt werden:
HTML:
<script type="text/javascript" id="javascript">
	function init() {
		var parameters = 'width=' + screen.width + '&height=' + screen.height;
		var thisElem = document.getElementById('javascript');
		var newScript = document.createElement('script');
		newScript.setAttribute('type', 'text/javascript');
		newScript.setAttribute('src', 'javascript.php?' + parameters);
		thisElem.parentNode.insertBefore(newScript, thisElem);
	}
	onload = init();
</script>
 
Hm, wie es aussieht klappt es doch nicht, da das JavaScript-Konstrukt document.write() das bestehende Dokument überschreibt.
 
Also document.write() habe ich nur genutzt, um mir den Wert im Browser anzeigen zu lassen (so zum Test, ob's überhaupt funktioniert).
Ich will einfach nur den Wert von screen.height in der selben Datei an den PHP Code weiterleiten.

redlama
 
Kannst Du mal bitte auf die Seite und in meinen Quelltext schauen wo der Fehler liegt?
Hier der Link: Testseite
Und hier der Quelltext:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
  <head>
    <title>Testseite</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="test2.css" />
    <script type="text/javascript">
      function init()
      {
        var parameter = '&height=' + screen.height;
        var head = document.getElementsByTagName('head');
        var newScript = document.createElement('script');
        newScript.setAttribute('type', 'text/javascript');
        newScript.setAttribute('src', 'test2.php?' + parameter);
        head[0].appendChild(newScript);
      }
      onload = init();
    </script>
  </head>
  <body>
    <?php
      header('Content-Type: text/javascript');
      echo 'onload = alert("Bildschirmaufl&ouml;sung: '.$_GET['height'].'");';
    ?>
  </body>
</html>

redlama
 
Zurück