# php variable in js einbauen



## rotmilan (24. Februar 2005)

Guten Tag,

kann mir bitte jemand sagen wie ich eine phpvariable in javascript einbaue.

so funktioniert es leider nich
if(current == 2)
nach(<?php print $zwei ?>);

mfg falke


----------



## liquidbeats (24. Februar 2005)

```
if(current == 2)
nach(<? echo $zwei; ?>);
```
 
Probier das mal, anderenfals müsstes du mal mehr Source zeigen.

Gruß


----------



## Sven Mintel (24. Februar 2005)

Was ist $zwei?
Wenn es ein String sein sollte, musst du ihn in Anführungszeichen ausgeben.

```
nach('<?php print $zwei ?>');
```


----------



## rotmilan (24. Februar 2005)

hi,

klappt leider auch nicht.

Also ich gebe in ein inputtype text eine zahl ein, welche dann in eine php-variable gespeichert wird diese ich dann wieder in javascript verwenden möchte.


```
function time(gets){
setTimeout('nextOne()',gets);
}	
if(current == 2)
time(<? echo $zwei; ?>);
```

Und zwar wie du hier sehen kannst dann in der function time benutzt werden soll um die zeit zu setzen.

mfg rotmilan


----------



## rotmilan (24. Februar 2005)

hi Sven,

also es handelt sich um eine Zahl, aber nach dem Anführungszeichen setzen wurde der restliche code wieder mit syntaxhighlighting gezeigt was bei den anderen Varianten für den Rest der Funktion ausbleibt.
Vielleicht hilft dieses Indiz weiter, aber vielleicht liegt das auch einfach nur am html-editor.

mfg rotmilan


----------



## liquidbeats (24. Februar 2005)

Vieleicht ist die PHP Variable leer?
Wird die variable denn mit hilfe eines Formulares weiterverschickt?
hast du mit PHP geprüft ob der Inhalt der Variable bei PHP Überhupt ankommt damit du diese mit echo ausgeben kannst?

gruß


----------



## rotmilan (24. Februar 2005)

hi,

ja hab ich gemacht und die Zahl wird ausgegeben.

mfg falke

übrigens bei der variante ohne php nach dem einführenden <? tag ist das sytaxhighlighting vorhanden.


----------



## liquidbeats (24. Februar 2005)

hm ... wird dieser Code vor dem eigentlichen PHP Code ausgegeben oder wird in dem Dokument bevor du diesen javascript code schnipsel ausgibt der PHP code Behandelt?
Etwas mehr Sourcecode würde jetzt vieleicht helfen dir zu helfen 

Gruß


----------



## liquidbeats (24. Februar 2005)

Also ich hatte gestern auch mit PHP und Javascript eine Erweiterte Bildergalerie Gebaut.
In dieser Galerie musste ich auch den Inhalt einer PHP Variable an Javascript Übergeben.
Das ganze sieht so aus, evtl. kannst du dich daran ja ein wenig Orientieren.


```
parent.location.href = "<? echo $PHP_SELF; ?>?location=<? echo $weiter; ?>"+xwert;}
```
 
Gruß Andy


----------



## rotmilan (24. Februar 2005)

hier hast du den code:


```
<html>
<head>
<title>iqtest</title>
<script type="text/javascript">
<!--

function time(gets){
setTimeout('nextOne()',gets);   //die funktion die ich mit der phpvariable aufrufe
}	

var zeiten = new Array(0, 2000, 1000, 3000, 2000, 2000,2000);

function weg() {
  document.getElementById("Anmeldung").style.display = "none";
}
function wegg() {
  document.getElementById("admin").style.display = "none";
}

var current = 1;
var amount = 5;

function nextOne() {
  
	document.getElementById("content" + current).style.display = "none";
	current ++;
	document.getElementById("content" + current).style.display = "block";
	
	//setTimeout('nextOne()', zeiten[current]);
	

  if(current == 2)
	time(<? echo $zwei; ?>);  //einbindung der phpvariable ohne erfolg
	if(current == 3)
	time(2000);
	if(current == 4)
	time(5000);
	if(current == 5)
	time(2000);
}

//-->
</script>
</head>
<body onLoad= document.getElementById("Anmeldung").style.display="block";>
<div align="center">Willkommen zum Einstellungstest der ProMind.</div>
<!--
<a href="#admin">Admin</a> 
-->

<a href="javascript:document.getElementById('admin').style.display='block';document.getElementById('Anmeldung').style.display='none';document.getElementById('admin').scrollIntoView();void(0)">Admin</a>
<div id="Anmeldung" style="display:none; width:320px; height:240px">
Zunächst müssen Sie Ihren Namen und das Geburtsdatum eingeben.<br><br>
<form action="index.php" method="GET"> 
Nachname&nbsp;&nbsp;<input type="text" name="nachname">
Name&nbsp;&nbsp;<input type="text" name="name" value=""><br>
Gebdatum&nbsp;&nbsp; <input type="text" name="gdatum" value="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="speichern">
</form></div>
<div id="adminlink" style="display:block;><a href="javascript:document.getElementById('admin').style.display='block';document.getElementById('Anmeldung').style.display='none';document.getElementById('admin').scrollIntoView();void(0)">Admin</a></div>
<div id="admin" style="display:none; width:320px; height:240px">Adminbereich:<form action="index.php" method="GET">     
<input type="text" name="zwei" size="12"><input type="submit" value="ändern"></form></div> // hier wird die zahl eingegeben 


<? 

$connect = mysql_connect("localhost","root","");
mysql_select_db("test",$connect);

session_register("zwei");

 $dot = substr_count($_GET['gdatum'],".");

    if($dot == 2)
    {
    $date = explode (".",$_GET['gdatum']);

    $date[0] = str_pad($date[0],2,"0",str_pad_left);
    $date[1] = str_pad($date[1],2,"0",str_pad_left);

    $_GET['gdatum'] = $date[2]."-".$date[1]."-".$date[0];
		}

if ($_GET['zwei'])
$zwei = $_GET['zwei'];            // hier zugewiesen und darunter ausgegeben
echo $zwei;
		 
if ($_GET['nachname'])	{	  
$teiln = mysql_query("insert into teilnehmer (id,nachname,name,gdatum) values ('','".$_GET["nachname"]."','".$_GET["name"]."','".$_GET["gdatum"]."')",$connect);



$aff = mysql_affected_rows();
if ($aff > 0)
{
 echo "Sie haben sich erfolgreich registriert.<br>";
?>

<script language="JavaScript" type="text/javascript">
<!--

setTimeout('weg()',0000);
setTimeout('nextOne()', 2000);      // hier dann benutzt 


//-->
</script>



<div id="content1" style="display:block; width:320px; height:240px">Hier ist das erste Kapitel</div>
<div id="content2" style="display:none; width:320px; height:240px">Hier ist das zweite Kapitel</div>
<div id="content3" style="display:none; width:320px; height:240px">Hier ist das dritte Kapitel</div>
<div id="content4" style="display:none; width:320px; height:240px">Hier ist das vierte Kapitel</div>
<div id="content5" style="display:none; width:320px; height:240px">Hier ist das fünfte Kapitel</div>
<div id="content6" style="display:none; width:320px; height:240px">Der Test ist beendet</div>

<? }} ?>



</body>
</html>
```

ich hoffe das war jezt nicht zu unübersichtlich.

mfg rotmilan


----------



## liquidbeats (24. Februar 2005)

ich würde versuchen den PHP Code nach oben in das Dokument zu verlagern.



Aber versuch das mal, kann aber keine Funktionsgarantie geben. habe da noch ein fehlendes Hochkomma gesetzt.


```
<html>
<head>
<title>iqtest</title>
<script type="text/javascript">
<!--
function time(gets){
setTimeout('nextOne()',gets);   //die funktion die ich mit der phpvariable aufrufe
} 
var zeiten = new Array(0, 2000, 1000, 3000, 2000, 2000,2000);
function weg() {
  document.getElementById("Anmeldung").style.display = "none";
}
function wegg() {
  document.getElementById("admin").style.display = "none";
}
var current = 1;
var amount = 5;
function nextOne() {
  
 document.getElementById("content" + current).style.display = "none";
 current ++;
 document.getElementById("content" + current).style.display = "block";
 
 //setTimeout('nextOne()', zeiten[current]);
 
  if(current == 2)
 time(<? echo $zwei; ?>);  //einbindung der phpvariable ohne erfolg
 if(current == 3)
 time(2000);
 if(current == 4)
 time(5000);
 if(current == 5)
 time(2000);
}
//-->
</script>
</head>
<body onLoad= document.getElementById("Anmeldung").style.display="block";>
<div align="center">Willkommen zum Einstellungstest der ProMind.</div>
<!--
<a href="#admin">Admin</a> 
-->
<a href="javascript:document.getElementById('admin').style.display='block';document.getElementById('Anmeldung  ').style.display='none';document.getElementById('admin').scrollIntoView();void(0)">Admin</a>
<div id="Anmeldung" style="display:none; width:320px; height:240px">
Zunächst müssen Sie Ihren Namen und das Geburtsdatum eingeben.<br><br>
<form action="index.php" method="GET"> 
Nachname&nbsp;&nbsp;<input type="text" name="nachname">
Name&nbsp;&nbsp;<input type="text" name="name" value=""><br>
Gebdatum&nbsp;&nbsp; <input type="text" name="gdatum" value="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="speichern">
</form></div>
<div id="adminlink" style="display:block;"><a href="javascript:document.getElementById('admin').style.display='block';document.getElementById('Anmeldung  ').style.display='none';document.getElementById('admin').scrollIntoView();void(0)">Admin</a></div>
<div id="admin" style="display:none; width:320px; height:240px">Adminbereich:<form action="index.php" method="GET">	 
<input type="text" name="zwei" size="12"><input type="submit" value="ändern"></form></div> // hier wird die zahl eingegeben 

<? 
$connect = mysql_connect("localhost","root","");
mysql_select_db("test",$connect);
session_register("zwei");
 $dot = substr_count($_GET['gdatum'],".");
	if($dot == 2)
	{
	$date = explode (".",$_GET['gdatum']);
	$date[0] = str_pad($date[0],2,"0",str_pad_left);
	$date[1] = str_pad($date[1],2,"0",str_pad_left);
	$_GET['gdatum'] = $date[2]."-".$date[1]."-".$date[0];
  }
if ($_GET['zwei'])
$zwei = $_GET['zwei'];			// hier zugewiesen und darunter ausgegeben
echo $zwei;
   
if ($_GET['nachname']) {   
$teiln = mysql_query("insert into teilnehmer (id,nachname,name,gdatum) values ('','".$_GET["nachname"]."','".$_GET["name"]."','".$_GET["gdatum"]."')",$connect);
 
$aff = mysql_affected_rows();
if ($aff > 0)
{
 echo "Sie haben sich erfolgreich registriert.<br>";
?>
<script language="JavaScript" type="text/javascript">
<!--
setTimeout('weg()',0000);
setTimeout('nextOne()', 2000);	  // hier dann benutzt 

//-->
</script>
 
<div id="content1" style="display:block; width:320px; height:240px">Hier ist das erste Kapitel</div>
<div id="content2" style="display:none; width:320px; height:240px">Hier ist das zweite Kapitel</div>
<div id="content3" style="display:none; width:320px; height:240px">Hier ist das dritte Kapitel</div>
<div id="content4" style="display:none; width:320px; height:240px">Hier ist das vierte Kapitel</div>
<div id="content5" style="display:none; width:320px; height:240px">Hier ist das fünfte Kapitel</div>
<div id="content6" style="display:none; width:320px; height:240px">Der Test ist beendet</div>
<? }} ?>
 
</body>
</html>
```
 

aber wie gesagt versuch den PHP Code mal nach oben zu verlagern,könnte evtl helfen.


----------



## rotmilan (24. Februar 2005)

yo, 

hab php nach oben gesetzt und es klappt.

Nur ist jetzt alles ein bisschen verdreht aber dass werd ich schon hinkriegen.

danke für die tipps.

mfg rotmilan


----------



## rotmilan (24. Februar 2005)

ps. wo hast du denn das hockkommata gestzt?

mfg rotmilan


----------



## liquidbeats (24. Februar 2005)

Zeile 94

das
<div id="adminlink" style="display:block;>
gegen das getauscht
<div id="adminlink" style="display:block;*"*>


Das schwarz Markierte Hochkomma im Roten Text hat im Blauen Feld gefehlt.
Gruß Andy


----------



## rotmilan (24. Februar 2005)

hi,

dann sollte ich die wohl hier auch noch hinmachen:

```
<div id="content1" style="display:block"; width:320px; height:240px">Hier ist das erste Kapitel</div>
<div id="content2" style="display:none; width:320px; height:240px">Hier ist das zweite Kapitel</div>
<div id="content3" style="display:none; width:320px; height:240px">Hier ist das dritte Kapitel</div>
<div id="content4" style="display:none; width:320px; height:240px">Hier ist das vierte Kapitel</div>
<div id="content5" style="display:none; width:320px; height:240px">Hier ist das fünfte Kapitel</div>
<div id="content6" style="display:none; width:320px; height:240px">Der Test ist beendet</div>
```

mfg rotmilan


----------



## liquidbeats (24. Februar 2005)

ne in diesem Styleblock sind ja mehrere Angaben und am ende ist es ja gesetzt.
in der Obersten Zeile hinter display:block ist das Hochkomma falsch da dannach noch angaben kommen und der style tag ja auch richtig geschloßen wird.

dadurch das nach display:block ein hochkomma kommt werden die anderen die dannach kommen ausgeschloßen.


----------

