PHP-Wert an JavaScript übergeben

Ich habe ein ähnliches Problem. Seit PHP5 funktioniert mir dieses script nicht mehr:

PHP:
    <table width="100%" height="30" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td bgcolor="#FFFF00">
    <div align="center"></div>    
    <div align="center"><font class="texttitel"> Klassenzuteilung 2005 / 2006 </font></div>    </td>
  </tr>
</table>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td valign="top">
      <table  width="100%" border="0" cellpadding="8" cellspacing="0">
	  
	  

<?

$cat_result = mysql_db_query($database, "SELECT * FROM lehrpersonen_cat WHERE cat_id=1 OR cat_id=2 OR cat_id=3 OR cat_id=5 OR cat_id=6"  );
while($cat_row = mysql_fetch_array($cat_result)){

$cat_id = $cat_row["cat_id"];
$cat_description = $cat_row["cat_description"];

$pers_result = mysql_db_query($database, "SELECT * FROM lehrpersonen_pers WHERE cat_id = '$cat_id'  ORDER BY pers_name");
	while($pers_row = mysql_fetch_array($pers_result)){

    $pers_id = $pers_row["pers_id"];
	$pers_name = $pers_row["pers_name"];
	$pers_description = $pers_row["pers_description"];

	if($cat_description) echo "<tr><td colspan=\"3\">&nbsp;</td></tr>";

?>

        <tr>
          <td width="28%"><strong><?=$cat_description?></strong></td>
          <td width="44%"><a href="#" onClick="window.open('personen_details.php?id=<?=$pers_id?>','Personendetails','width=220,height=120,resizable=no,screenX=100,top=270,left=200,screenY=160')"><?=$pers_name?></a></td>
          <td width="28%"><div align="left"><?=$pers_description?></div></td>
        </tr>

<?

	unset($cat_description);
	}
}

?>

      </table>
    </td>
  </tr>
</table>



<p>&nbsp;</p>
<p align="center"><strong><a href="pdf/telefonliste.pdf" target="_blank">Link: Telefonliste als PDF</a> <a href="pdf/telefonliste.pdf" target="_blank"><img src="bilder/pdf/pdf.gif" width="30" height="29" border="0"></a></strong></p>


PHP:
<html>
<head>
<title>Details</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel=stylesheet type="text/css" href="var/style.css">

</head>

<body bgcolor="#FFFFFF" background="bilder/hg/tab_hg.jpg" onLoad="setTimeout('window.close()',5000)">



<?
$result = mysql_db_query($database, "SELECT * FROM lehrpersonen_pers WHERE pers_id='$id'");
$row = mysql_fetch_array($result);

	$pers_name = $row["pers_name"];
	$pers_description = $row["pers_description"];
	$pers_address = nl2br($row["pers_address"]);
	$pers_phone = $row["pers_phone"];
	$pers_email = $row["pers_email"];
	$pers_picture = $row["pers_picture"];

?>
<table border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><b><?=$pers_name; ?></b></td>
    <td rowspan="5"><div align="center">
	<?
	if($pers_picture == ""){
		echo " ";
	}
	else{
		$bildpfad = "bilder/persbilder/".$pers_picture;
		if(file_exists($bildpfad)){
			?>
			<?
		}
		else{
			echo "Bild Pfad falsch";
		}
	}
	?>
	
	</div></td>
  </tr>
  <tr>
    <td><?=$pers_description?></td>
  </tr>
  <tr>
    <td><?=$pers_address?></td>
  </tr>
  <tr>
    <td><?=$pers_phone?>
    </td>
  </tr>
  <tr>
    <td><a href="mailto:<?=$pers_email?>"><?=$pers_email?></a>    </td>
  </tr>
</table>

<table border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td><div align="center">
        <p>&nbsp;</p>
        <p><a href="javascript:window.close();"><strong>Fenster schliesst in 5 sec.</strong></a> 
        </p>
        </div></td>
  </tr>
</table>
</body>
</html>

kann mir da jemand helfen ?

P.S. es wir bei der Variable id auch nichts mehr übergeben ...

Besten Dank im Voraus
 
Zuletzt bearbeitet:
Hallo liebe Tutorials Gemeinde ich hab fogendes Problem, welches sich aber mit den oben genannten Lösungen nicht lösen lässt.

Ich will ebenfalls über einen Link und window.open ein Fenster öffnen. Es wird aber der die Variable nicht übergeben.

Java-script:
PHP:
<?php
$o_cont =  "<script language=\"JavaScript1.1\">
                   function open_kun_addr(recid)
                      {
                       window_kun_addr = window.open(\"windows/windows.php?module=address&action=detail&id=+recid+\", \"Adressbrowser\", \"width=800,height=563,toolbar=no,status=no,menubar=no,titlebar=no,scollbars=auto,left=50,top=50\");
                       window_kun_addr.focus();
                      }
                      
                     </script>";
?>

Die Zeile, welche das script aufruft:
PHP:
<? $o_cont .= "<tr bgcolor=\"#ffffff\"><td width=\"10\" bgcolor=\"#d4d0c8\"><img src=\"images/leer.gif\"></td><td>&nbsp;<a href=\"javascript:open_kun_addr($row[REC_ID]);\" target=\"_self\">".$row[NAME1]."</a></td><td>&nbsp;".$row[TELE1]."</td><td>&nbsp;<a href=\"mailto:".$row[EMAIL]."\">".$row[EMAIL]."</a></td><td>&nbsp;".$row[FUNK]."</td><td align=\"right\">&nbsp;".number_format($row[Bestand], 0)."</td><td align=\"right\">&nbsp;".$row[REC_ID]."</td></tr>";
        ?>

der Link hat auch die richtige ID in der Stauszeile zb: (javascript:open_kun_addr(38))

Bitte um Hilfe. häng hier schon seit 5 Tagen
 
Generell kann man PHP Werte nur indirekt an javascript übergeben. Es sei denn man verwendet ajax, was aber in diesem simplen Fall overkill wäre.

Bitte prüfe doch erst einmal was in dem neuen Fenster überhaupt ankommt
z.B. mit alert(window.location.href)
Sollten hier die Übergebenen Parameter nicht drin sein
ist es eine Idee einmal im window.php selber zu sehen ob Parameter gesetzt wurden.
Ich erinnere mal an die $_GET[
"wasauchimmer"] Globale Variable.

Code:
//------------------------------------------------------------------------------
function parm(){
$arg  = func_get_args();
$val  =$arg[0];
$def  =$arg[1];
//------------------------------------------------------------------------------

$h=$_GET[$val];
if ($h==""){
	$h=$_POST[$val];
}
if ($h==""){
$h=$def;
}
$GLOBALS[$val]=$h;
return $h;
}

Wenn du also window.php?KUNDE=Willi Wichtig&ARTIKEL="Pümpel" aufrufst
kannst du mit obiger Funktion im window.php folgendes machen:
echo parm("KUNDE")."<br>";
echo parm(ARTIKEL)."<br>";
echo "<br>$KUNDE will $ARTIKEL<br>"

Die Methode funktioniert mit POST(Formular) oder GET(URL).
Der 2. optionale Parameter setzt übrigens optional den Wert wenn nichts definiert wurde ;)

Alternativ gibt es auch noch die Variante das das geöffnete Fenster auf Die erzeuger Variablen (Vaterfenster zugreift)

if (window.opener && !window.opener.closed){
alert(window.opener.KUNDE);
alert(window.opener.ARTIKEL);
}

Klappt wenn im Vaterfenster die entsprechenden Variablen gesetzt wurden
Halte ich nebenbei gesagt auch für viel eleganter und einfacher als diese
endlos langen URL Statements.

Viel Spass
Thomas
 
Zurück