Variable an Javascript übergeben

S

srocke

Moin,

ich administriere die Website einer Musikkneipe und habe vor etwas zu machen, wo man anklicken kann welche Musikrichtung man gut findet und dann soll sich ein Fenster mit einer Empfelung für eine Veranstaltung öffnen. Ich habe da schon ein Script nur leider funktioniert es nicht.

Hier der Code:


<html>
<head>
<script language="JavaScript">

<!--

function PopUp()
{
window.open('<?php echo "$var2"; ?>.html','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=400,height=550');
return false;
}
//-->

</script>
<title>riff</title>
</head>
<body bgcolor="#DF0000" text="#FFFFFF">
<ul>
<FORM method="get" action="">
Welche Musikrichtung m&ouml;gen sie?<br>
<INPUT type="radio" name="var2" value="rock">Rock<br>
<INPUT type="radio" name="var2" value="blues">Blues<br>
<INPUT type="radio" name="var2" value="oldies">Oldies<br>
<INPUT type="radio" name="var2" value="country">Country<br>
<INPUT type="radio" name="var2" value="soul">Soul<br>
<INPUT type="radio" name="var2" value="punk">Punk<br>
<INPUT type="submit" value="okay" ondblclick="PopUp()" onclick="<?php echo "$var2"; ?>">
</FORM>
</ul>
</body>
</html>

http://riff-live.de/musik.php

IUnd das Problem ist: der Popup öffnet sich nicht!

Danke im Voraus!
Gruß Malte

P.S. ich hab die suchfunktion benutzt und diesen Artikel http://www.tutorials.de/tutorials148231.html gefunden, der mir aber leider nicht weitergeholfen hat!
 
Das Problem wird wohl sein, dass $var2 zu keinem Zeitpunkt im Script definiert ist.
Dementsprechend ist das onClick-Ereignis der Select-Box leer.
Um Daten an PHP zu senden ist ein Reload erforderlich. Du kannst nicht einfach erwarten, dass PHP durch eine Auswahl direkt weiss was Du willst, denn: PHP => serverseitig, JavaScript => clientseitig.
 
Hi,

was soll mir das jetzt sagen? Sorry aber ich bin auch erst 16 Jahre alt also kann ich das noch nicht so gut beherrschen. Könnte mir denn jemand sagen wie ich es richtig machen soll?

Danke!
 
Zuletzt bearbeitet von einem Moderator:
Hi,
du hattest auf jeden Fall einen Schreib Fehler:
resizabl e=no
Aber daran lag es nicht ;)
Ich habe hier mal für dich das Script vervollständigt, so dass es funktioniert.
PHP:
<html>
<head>
<?php
if(!isset($_GET['var2']))
{
	if($_GET['okay']=="okay")
	{
		$var2 = "error";
		?>
		<script language="JavaScript">
		<!--
		function PopUp()
		{
		window.open('<?php echo "$var2"; ?>.html','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=400,height=550');return false;
		}
		//-->
		PopUp();
		</script>
		<?php
	}
}
else
{
	$var2 = $_GET['var2'];
	?>
	<script language="JavaScript">
	<!--
	function PopUp()
	{
	window.open('<?php echo "$var2"; ?>.html','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=400,height=550');return false;
	}
	//-->
	PopUp();
	</script>
	<?php
}
?>
<title>riff</title>
</head>
<body bgcolor="#DF0000" text="#FFFFFF">
<ul>
<FORM method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="musik">
Welche Musikrichtung m&ouml;gen sie?<br>
<INPUT type="radio" name="var2" value="rock">Rock<br>
<INPUT type="radio" name="var2" value="blues">Blues<br>
<INPUT type="radio" name="var2" value="oldies">Oldies<br>
<INPUT type="radio" name="var2" value="country">Country<br>
<INPUT type="radio" name="var2" value="soul">Soul<br>
<INPUT type="radio" name="var2" value="punk">Punk<br>
<INPUT type="submit" name="okay" value="okay">
</FORM>
</ul>
</body>
</html>
Gruß,
Snowowl
 
Zuletzt bearbeitet:
Hi,
also bei mir funktioniert es sehr gut ;)
Also auch das von dir hochgeladene. Vielleicht liegt es an deinem Browser? ^^
Gruß,
Snowowl
 
Ich benutze den Mozilla Firefox. Wenn ich die Seite öffne, dann kommt das zwar aber mit der Fehlermeldung: Notice: Undefined index: okay in /srv/www/htdocs/web42/html/musik.php on line 6 und wenn ich dann eins auswähle und auf okay drücke kommt kein Fenster. Wenn du auf okay drückst öffnet sich bei dir dann ein Fenster? (warscheinlich mit dem 404 Fehler da ich noch nicht die Seiten hochgeladen habe)
 
Ja, bei mir öffnet es sich!
Aber änder das Script doch?
Es muss sich ja net ein PopUp öffnen :-P
Kannst ja auch was anderes machen^^
Gruß,
Snowowl
 
Ich hab einfach mal den Popup blocker aus gemacht *grins* jetzt gehts! Leider kommt da immernoch dieses hier: Notice: Undefined index: okay in /srv/www/htdocs/web42/html/musik.php on line 6 haste da ne Idee? könnte man nicht einfach diese if funktion weglassen?
 
Ne ^^
um die if funktion kommt man net rum ;)
Habe hier den Code noch mal geändert, so dass er etwas kürzer ist:
PHP:
<html>
<head> 
<?php
if(isset($_GET['okay']) && $_GET['okay']=="okay")
{
	if(isset($_GET['var2']))
	{
		$var2 = $_GET['var2'];
	}
	else
	{
		$var2 = "error";
	}
	echo "
		<script language=\"JavaScript\">
		<!--
		function PopUp()
		{
		window.open(\"$var2.html\",\"MyWindow\",\"toolbar=no\",\"location=no\",\"directories=no\",\"status=no\",\"menubar=no\",\"scrollbars=no\",\"resizable=no\",\"width=400\",\"height=550\");return false;
		}
		//-->
		PopUp();
		</script>
	";
}
?>
<title>riff</title>
</head>
<body bgcolor="#DF0000" text="#FFFFFF">
<ul>
<FORM method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="musik">
Welche Musikrichtung m&ouml;gen sie?<br>
<INPUT type="radio" name="var2" value="rock">Rock<br>
<INPUT type="radio" name="var2" value="blues">Blues<br>
<INPUT type="radio" name="var2" value="oldies">Oldies<br>
<INPUT type="radio" name="var2" value="country">Country<br>
<INPUT type="radio" name="var2" value="soul">Soul<br>
<INPUT type="radio" name="var2" value="punk">Punk<br>
<INPUT type="submit" name="okay" value="okay">
</FORM>
</ul>
</body>
</html>
Gruß,
Snowowl


EDIT:
Ok, habe es hinztugefügt ;)
 
Zuletzt bearbeitet:
Zurück