PHP Variable an Java übergeben

DeepZone

Grünschnabel
Moin...
Und nocheinmal eine Frage. Ich bin gerade dabei für eine Seite ein Mitteilungssystem zu erstellen.
Dabei werden zuerst Nachrichten in einer Übersicht angezeigt (Absenter, Betreff)
Beim Klick auf betreff öffnet sich nun ein PopUp das per Java genriert wird und hier wird mir egal welche Nachricht angeklick wird immer nur die Nachricht mit der ID 1 angezeigt. Beim Link wird auch immer nur ID 1 übergeben. Was mache ich hier falsch ?

PHP:
<? case "mailtest": ?>

  <table width="557" border="0">
  <tr>
    <td width="195" height="21">Mail von</td>
    <td width="291">Betreff</td>
  </tr>
</table>
<?php 
error_reporting(E_ALL);     
require_once ('config.php');
$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
mysql_select_db(MYSQL_DATENBANK);
$sql = "SELECT * FROM mitteilungen WHERE user = '".$_SESSION["user_nickname"]."' ORDER BY ID DESC"; 
$ausgabe=mysql_query($sql); 

while ($mail = mysql_fetch_object ($ausgabe)) 
{ 
?>

<script LANGUAGE="JavaScript">
function mailpop() {
fenster = window.open("mail.php?id=<? echo $mail->id ?>","PopUp","width=500,height=500,menubar=no,toolbar=no,scrollbars=no,status=no,resizable=yes,location=yes,hotkeys=yes")
}
</script>

<table width="557" border="0">
  <tr> 
    <td width="195" height="21"><?php print " <a href=\"JavaScript:mailpop()\">$mail->absender</a>.";?> </td>
    <td width="291"><?php echo($mail->betreff);?></td>
  </tr>
</table>
<? }
$result = mysql_query($sql) OR               
die("Query: <pre>".$sql."</pre>\n".                   
"Antwortchen: ".mysql_error()); 
break; ?>

Vielen Dank schonmal im Vorraus..

Greetz Deep
 
Fehlt da nicht einfach das ";" am Ende.

Original:
PHP:
echo $mail->id

So soll es sein:
PHP:
echo $mail->id;
 
Das geht schon auch so (bei einzelnen Ausdrücken innerhalb der PHP Delimiter kann man das Semikolon weglassen). Mich würde mal interessieren, ob die Daten bspw. richtig in der Datenbank stehen. Hast du das Statement mal über phpMyAdmin abgesetzt und geschaut, obs dort richtig funktioniert? Bzw. mal in die Datenbank geschaut, ob die Daten richtig erfasst wurden?

So am Ablauf kann ich nichts verkehrtes feststellen..
 
Moin,

du kannst da auch 1000 mal die Funktion mailpop() hinschreiben, gemommen wird immer nur eine.

Du müsstest die ID der Funktin als Paramater übergeben, und zwar hier:
Code:
<?php print " <a href=\"JavaScript:mailpop()\">$mail->absender</a>.";?>
...schreibe stattdessen:
Code:
<?php print " <a href=\"JavaScript:mailpop(".$mail->id.")\">$mail->absender</a>.";?>


wenn du dann noch die Funktion ein wenig dahingehend abänderst:
Code:
function mailpop(id) {
fenster = window.open("mail.php?id="+id,"PopUp","width=500,height=500,menubar=no,toolbar=no,scrollbars=no,status=no,resizable=yes,location=yes,hotkeys=yes")
}

...könnte es hinhauen.

Die Funktion mailpop() kannst und solltest du dabei ausserhalb der Schleife platzieren, denn sie reicht wie gesagt 1x.
 
@Sven
Vielen Dank.. Das wars, Funktioniert jetzt. Habe die Funktion außerhalb der schleife platziert und den Code entsprechend abgeändert. Nun funktioniert es wie es soll.

Vielen Dank.
 
Zurück