Nachricht öffnen und als gelesen markieren

thehasso

Erfahrenes Mitglied
hallo,

Bei mir in der Webseite befindet sich ein Bild eines Briefes, wenn man neue Nachricht erhält. Diese Nachricht ist geschlossen. wenn man jedoch auf nachricht lesen klickt, wird ein Brief angezeigt, der offen ist.

Eine Sache ist leider nicht so fein. Als und zwar gibts einen Link der heist Nachricht als gelesen makieren, der setzt den WERT auf 1.. sodass die Nachricht als gelesen makiert wird, und ein Link der heisst Nachricht lesen, der die Nachricht öffnet.

Problem an der ganzen Sache ist, dass diese Methode nicht so ganz elegant und toll aussieht. Deswegen wollt ich dass man nur auch Nachricht lesen klickt und 2 dinge gleichzeitig erledigt werden:

1) Nachricht öffnen
2) Nachricht als makiert makieren.

PHP:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>

<script src="http://code.jquery.com/jquery-latest.js"></script>
  

<script>
$(function() {  //Kurzschreibweise für $(document).ready
  $('a.showMsg').click(function() {       
    var msg=$(this).attr('id')+"_text";
    $('#'+msg).slideToggle();
  });
}); 
</script>

  <style>
  div { 
  background: #FF4040; margin:3px; width:793px; 
        height:127px; display:none; float:left; 
	  }
	  
  body {
	background-color: #FF7373;
}
body,td,th {
	color: #FFF;
}
</style>


</head>

<body> 

    
    
   		<? 
		
		$nachricht_id = htmlentities($searchEntry['nachricht_id']); 
		echo " <a href='/fffk/Templates/nacheinloggen/viewMessage.php?id=$nachricht_id' target='_blank'>Nachricht als gelesen makieren</a>";
		
		?> 

 <a class="showMsg" id="msg<? echo $nachricht_id ?>">Nachricht lesen</a> 
       

<div id="msg<? echo $nachricht_id ?>_text"> </div>





</body>
</html>

Leider weiß ich gar nicht wie man das so umsetzen kann. Wie gesagt mit meiner Lösung bin ich gar nicht soo glücklich :(

Viele grüße
 
Moin,

mit Javascript kommst du da bestimmt nicht weiter, dazu muss ja vermutlich ein Datenbankeintrag geändert werden....aus deinem Code geht aber nichts hervor, woraus man ablesen könnte, wie sich generell der Zugriff auf die Nachrichten gestaltet.
 
Hallo,

das javascript dient nur dazu, dass sich die Nachricht öffnet.

hier mal ein bild damit sich das ganze mal bissel veranschaulicht...

http://www.bilder-space.de/show.php?file=20.04E4MJ034hPP2W9Oa.jpg

man kann auch gut sehen, das nachricht lesen 2 mal da steht, und zwar einmal um in der Datenbank den WERT der nachricht auf 1 zu setzen. Und das andere um die nachricht zu öffnen.

Ich hab den kompletten code, nicht geposted weil das bissel unübersichtlich wird. aber kanns gerne machen.

PHP:
<?php
session_start();

	$sender_id = $_SESSION['MM_UserId']; 
	$sender = $_SESSION['MM_Vorname'];
	$nachname = $_SESSION['MM_Nachname'];
	
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>

<script src="http://code.jquery.com/jquery-latest.js"></script>
  

<script>
$(function() {  //Kurzschreibweise für $(document).ready
  $('a.showMsg').click(function() {       
    var msg=$(this).attr('id')+"_text";
    $('#'+msg).slideToggle();
  });
}); 
</script>

  <style>
  div { 
  background: #FF4040; margin:3px; width:793px; 
        height:127px; display:none; float:left; 
	  }
	  
  body {
	background-color: #FF7373;
}
body,td,th {
	color: #FFF;
}
</style>


</head>

<body>


<!--*******************************AKTUELLE UPDATE************************************************************--->

      
  Nachrichteneingang<?php // Dieser Quelltext ermittelt die AbsenderNachricht, absendedatum, name des absender, und den Nachrichtentext... 	    
	  
	  	require_once('dataBaseConnection.php');
	  
	  
	  $SQL = sprintf("SELECT nachricht_id, sender, sender_id, gelesen, betreff, sendezeit, uhrzeit, nachrichttext 
					 FROM nachrichten WHERE empfaenger_id ='%s' AND empfaengergeloescht = 1",$sender_id);
	  
	  $REC = mysql_query($SQL) or die('<pre>'.htmlspecialchars($querystr."\n".mysql_error()).'</pre>');
	  $RECrows = mysql_num_rows($REC);
   
   
      while($Datensatz = mysql_fetch_assoc($REC)){
	   
		$record['nachricht_id'] = $Datensatz['nachricht_id'];
		$record['sender'] = $Datensatz['sender'];
		$record['sender_id'] = $Datensatz['sender_id'];
		$record['gelesen'] = $Datensatz['gelesen'];
        $record['betreff'] = $Datensatz['betreff'];
		$record['sendezeit'] = $Datensatz['sendezeit'];
		$record['uhrzeit'] = $Datensatz['uhrzeit'];
        $record['nachrichttext'] = $Datensatz['nachrichttext'];


       $DATA['SEARCH'][] = $record;
	    
  }

?>

 
 
 
    
<?php 
$nachricht_id = htmlentities($searchEntry['nachricht_id']);
if ($RECrows > 0 ) foreach($DATA['SEARCH'] as $searchEntry): ?> <!--BEGINN DER SCHLEIFE UM DIE DATEN AUS ZU GEBEN-->

<?php 

if ($RECrows < 1) echo "Du hast keine Nachrichten im Nachrichteneingang!";

?>
  
<table style="border:1px solid #C00;" width="793" border="0">
    <tr>
      <td width="224" height="71">
      
      	<?php 
		
		
		$nr = htmlentities($searchEntry['sender_id']);
		 $SQL =sprintf("SELECT dateiname, intID FROM tblbenutzer WHERE intID = '%s'",$nr); // hier werden die ID nummern der freunde eingefügt, um den dateiname auszulesen. 
		 
		 $REC = mysql_query($SQL) or die(mysql_error());
  
  
  
		while($Datensatz = mysql_fetch_assoc($REC)){
		$bild = $Datensatz ['dateiname']; // hier wird das bildname der Variable $bild zugewiesen.
		$intID = $Datensatz ['intID'];
		}

?>    

<?php 
  
  
  	if($bild == NULL) echo "<a href='/fffk/Templates/nacheinloggen/profil.php?id=$intID' target='mainFrame'> <img src='img/no_image.jpg' width='120px' height='75px' alt='bild' />"; 
	else
   echo " <a href='/fffk/Templates/nacheinloggen/profil.php?id=$intID' target='mainFrame'><img src='img/$bild' width='120px' height='75px' alt='pic' />";
	$zahl = htmlentities($searchEntry['nachricht_id']);
?> 
      
      </td>
      <td width="196"> <!---->
        
		<? 
		//*************************************************************************************************************
		
		$nachricht_id = htmlentities($searchEntry['nachricht_id']); 
		echo " <a href='/fffk/Templates/nacheinloggen/viewMessage.php?id=$nachricht_id' target='_blank'>Nacchricht lesen</a>";
		
		?>
    
    
    
 <a class="showMsg" id="msg<? echo $nachricht_id ?>">Nachricht lesen</a> 
       
      <p>Betreff: <?php echo htmlentities($searchEntry['betreff']);
	$betreff = htmlentities($searchEntry['betreff']); ?>
        <input type="hidden" name="betreff"  value ="<?php echo $betreff ?>" size="60"/></p></td>
      <td width="179">
      


<?

	$gelesen = htmlentities($searchEntry['gelesen']);
//echo $gelesen;

if($gelesen == NULL ) echo" <img src='../../messageclose.png' width='16' height='16' />";
	else 
	echo" <img src='../../messageopen.png' width='16' height='16' />"; 
	
  ?>

      </td>
      <td width="189"><p>Datum: <?php echo htmlentities($searchEntry['sendezeit']); ?></p>
      <p>Uhrzeit: <?php echo htmlentities($searchEntry['uhrzeit']); ?></p></td>
    </tr>
  </table>
  
  

<div id="msg<? echo $nachricht_id ?>_text">
<table width="793" border="0">
   <tr>
     <td width="427" rowspan="5" bgcolor="#FF4040" ><?php echo htmlentities($searchEntry['nachrichttext']);  ?></td> 
     <td width="1" rowspan="5" bgcolor="#FF7373" >&nbsp;</td>
     <td width="1" rowspan="5">&nbsp;</td>
     <td width="78" >Absender.:</td>
     <td width ="111"><?php
	$nachricht_id = htmlentities($searchEntry['nachricht_id']);
	echo htmlentities($searchEntry['sender']); 
	$empfaenger = htmlentities($searchEntry['sender']);?>
    <input type="hidden" name="empfaenger"  value ="<? echo $empfaenger ?>" size="60"/>
   <?php
    $empfaenger_id = htmlentities($searchEntry['sender_id']);?> 
	<input type="hidden" name="empfaenger_id"  value ="<? echo $empfaenger_id ?>" size="60"/></td>
     <td width="14">&nbsp;</td>
     <td width="110"><a href="antwort.php?absender=<?php echo $empfaenger?>&empfaenger_id=<?php echo $empfaenger_id ?>&betreff=<?php echo $betreff ?> "target="_self">antworten</a></td>
   </tr>
   <tr>
     <td>Mitgl. Nr.:</td>
     <td><?php echo htmlentities($searchEntry['sender_id']); ?></td>
     <td>&nbsp;</td>
     <td><a href="deletemail.php?nachricht_id=<?php echo $nachricht_id ?>">Nachricht löschen</a></td>
     <td width="8">&nbsp;</td>
   </tr>
   <tr>
     <td></td>
     <td></td>
     <td>&nbsp;</td>
     <td></td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
</table> 
</div>

<br />

  <?php endforeach; ?>

  



</body>
</html>

Kann man da was machen?
 
Naja, das erledigt ja alles die viewMessage.php

Diese Datei würde ich generell die Nachricht passend zur übergebenen id als gelesen markieren lassen.
Code:
"UPDATE nachrichten SET gelesen=1 WHERE nachricht_id=".$_GET['id']
(Validierung von $_GET['id'] nicht vergessen)

weiterhin würde ich der Datei einen zusätzlichen Parameter übergeben, an dem sie erkennt, ob die Nachricht auch angezeigt werden soll.

Den Vorgang des "nur-gelesen-markierens" würde ich dabei über AJAX erledigen.
 
Das funktioniert ja schon, dass der Wert auf 1 gesetzt wird. Ich versteh nicht so ganz was du meinst?

Meine frage bezieht sich ja darauf wie ich 2 fliegen mit einer klatsche erledigen kann. Sprich die nachricht öffne was zurzeit mit java funktioniert und dabei der wert auf 1 gesetzt wird. gesetzt wird der Wert zurzeit mit der datei viewmessage.php und das funktioniert.
 
Ahso, ich hatte den Skript-Block oben übersehen :-)

So würde ich es machen:
Code:
<script type="text/javascript">
$(function() {  //Kurzschreibweise für $(document).ready

  $('a.showMsg').click(function() { 
    //Extrahieren der Nachrichten-ID 
    var msgId=String($(this).attr('id')).replace(/^msg/,'');
    
    var msg=$(this).attr('id')+"_text";
    $('#'+msg).slideToggle();
    markread(msgId);
  });
});


function markread(msgId)
{
  if($('#msg'+msgId+'_flag').length)
  {   
    $.get('viewMessage.php',//Pfad zur viewMessage.php, ggf. anpassen
          {id:msgId},       //id der Nachricht
          function ()       //callback
                  {
                    //Bild austauschen
                    $('#msg'+msgId+'_flag')[0].setAttribute('src',
                                                            //Pfad zum "gelesen"-Icon
                                                            '../../messageopen.png')
                    
                    //ID des Bildes entfernen, damit nicht mehrmals der Request ausgeführt wird
                    $('#msg'+msgId+'_flag')[0].removeAttribute('id');
                  }
          );
  }
} 
</script>
erforderliche Änderung am PHP-Skript:
Das Bild mit dem Briefumschlag muss auch eine ID bekommen,allerdings nur, wenn die Nachricht noch nicht gelesen wurde.
Aufbau der ID:
Code:
msg?_flag
(Das Fragezeichen steht für die ID der Nachricht)

Die Klick-Function wurde etwas erweitert.
Zum einen wird die Nachrichten-ID aus der ID des angeklickten Elementes extrahiert.
Zum anderen erfolgt mit dieser ID als Parameter der Aufruf der neuen Funktion markread()

Diese Funktion schaut nach, ob es ein Bild mit der passenden ID gibt(wie oben beschrieben)
Falls ja wird per AJAX ein Request an die viewMessage.php gesendet...welche dann im Hintergrund den Eintrag in der DB ändert.
Ist das geschehen, wird das Bild ausgetauscht, und die ID des Bildes entfernt(diese wird nicht mehr benötigt).

Das wars schon(den Pfad zur viewMessage.php musst du in markread() evtl. noch anpassen).

Die Funktion markread() kannst du auch für das als-gelesen-markieren-ohne -anzeigen verwenden, rufe sie einfach auf und übergib ihr die Nachrichten-ID als Parameter.
 
Hallo Steven,

ich hab den code so umgeändert soweit ich es vertanden habe, den javascript code hab ich ganz unten geposted weil ich die nachrichten_id erst aus der db auslesen muss.

leider funktioniert nichts......ist das notwendig, dass man dem bild eine Nummer gibt? ich mein weil wenn man auf nachricht lesen klickt, dann wird ja im javascipt mit dem get die vieMessage aufgerufen. und in der Viewmessage, findet ein update statt indem die nachricht als gelesen makiert wird. (also ungleich null ist). Im php code, wird ein Bild als close angezeigt, wenn in der Datenbank gelesen 0 ist und wenn es ungleich Null ist, wird das offene Bild angezeigt.

du meinst aber nicht das ich das bild unbenne und eine Nummer gebe oder wie meinst du das?

PHP:
<?php
session_start();

	$sender_id = $_SESSION['MM_UserId']; 
	$sender = $_SESSION['MM_Vorname'];
	$nachname = $_SESSION['MM_Nachname'];
	
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
 
<?
	  	require_once('dataBaseConnection.php');
	  
	  
	  $SQL = sprintf("SELECT nachricht_id FROM nachrichten WHERE empfaenger_id ='%s' AND empfaengergeloescht = 1",$sender_id);
	  
	  $REC = mysql_query($SQL) or die('<pre>'.htmlspecialchars($querystr."\n".mysql_error()).'</pre>');
	  $anzahl = mysql_num_rows($REC);
?>
</head>

<body>
<div class="buttonscontainer">
<div class="buttons">
<a href="nachrichtenausgang.php" target="mainFrame">Nachrichtenausgang</a>
<a href="nachrichtschreiben.php" target="mainFrame">Nachricht schreiben</a>
</div>
</div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="fett">Du hast <? echo $anzahl ?> im Nachrichten im Nachrichteneingang</span><br/><br/>

<!--*******************************AKTUELLE UPDATE************************************************************--->



<?php // Dieser Quelltext ermittelt die AbsenderNachricht, absendedatum, name des absender, und den Nachrichtentext... 	    
	  
	  	require_once('dataBaseConnection.php');
	  
	  
	  $SQL = sprintf("SELECT nachricht_id, sender, sender_id, gelesen, betreff, sendezeit, uhrzeit, nachrichttext 
					 FROM nachrichten WHERE empfaenger_id ='%s' AND empfaengergeloescht = 1 ORDER BY datum DESC",$sender_id);
	  
	  $REC = mysql_query($SQL) or die('<pre>'.htmlspecialchars($querystr."\n".mysql_error()).'</pre>');
	  $RECrows = mysql_num_rows($REC);
		
		   
   
      while($Datensatz = mysql_fetch_assoc($REC)){
	   
		$record['nachricht_id'] = $Datensatz['nachricht_id'];
		$record['sender'] = $Datensatz['sender'];
		$record['sender_id'] = $Datensatz['sender_id'];
		$record['gelesen'] = $Datensatz['gelesen'];
        $record['betreff'] = $Datensatz['betreff'];
		$record['sendezeit'] = $Datensatz['sendezeit'];
		$record['uhrzeit'] = $Datensatz['uhrzeit'];
        $record['nachrichttext'] = $Datensatz['nachrichttext'];


       $DATA['SEARCH'][] = $record;
	    
  }

?>
 
 
 
    
<?php 
$nachricht_id = htmlentities($searchEntry['nachricht_id']);
if ($RECrows > 0 ) foreach($DATA['SEARCH'] as $searchEntry): ?> <!--BEGINN DER SCHLEIFE UM DIE DATEN AUS ZU GEBEN-->

<?php 

if ($RECrows < 1) echo "Du hast keine Nachrichten im Nachrichteneingang!";

?>
  
<table style="border:1px solid #C00;" width="793" border="0">
    <tr>
      <td bgcolor="#FF7373" width="20"><br /><input type="checkbox" name="CheckboxGroup1" value="kontrollkästchen" id="CheckboxGroup1_0" /></td>
      <td bgcolor="#FF7373" width="163" height="71"><?php 
		
		
		$nr = htmlentities($searchEntry['sender_id']);
		 $SQL =sprintf("SELECT dateiname, intID FROM tblbenutzer WHERE intID = '%s'",$nr); // hier werden die ID nummern der freunde eingefügt, um den dateiname auszulesen. 
		 
		 $REC = mysql_query($SQL) or die(mysql_error());
  
  
  
		while($Datensatz = mysql_fetch_assoc($REC)){
		$bild = $Datensatz ['dateiname']; // hier wird das bildname der Variable $bild zugewiesen.
		$intID = $Datensatz ['intID'];
		}

?>    

<?php 
  
  
  	if($bild == NULL && $nr != 1 ) echo "<a href='/fffk/Templates/nacheinloggen/profilmitdiashow.php?id=$intID' target='mainFrame'> <img src='img/no_image.jpg' width='120px' height='75px' alt='bild' border = 0 />"; 
	else
   echo " <a href='/fffk/Templates/nacheinloggen/profilmitdiashow.php?id=$intID' target='mainFrame'><img src='img/$bild' width='120px' height='85px'  border = 0 />";
  if($nr == 1){ echo "<img src='../../libanon.gif' width='120px' height='75px' border = 0/>"; }
	$zahl = htmlentities($searchEntry['nachricht_id']);
?> 
      
      </td>
      <td bgcolor="#FF7373" width="303"> <!---->
        
		<? 
		//*************************************************************************************************************
		
		// übergabe der VARIABLE nachricht_id
		$nachricht_id = htmlentities($searchEntry['nachricht_id']); 
		echo " <a href='viewMessage.php?id=$nachricht_id' target='_blank'>Nacchricht lesen</a>";
		
		?>
    
    
  <!-- hier öffnet man die message, mit der jeweiligen nachrichten_id -->   
 <a class="showMsg" id="msg<? echo $nachricht_id ?>">Nachricht lesen</a>
 
<p>Betreff: <?php echo htmlentities($searchEntry['betreff']);
	$betreff = htmlentities($searchEntry['betreff']); ?>
      <input type="hidden" name="betreff"  value ="<?php echo $betreff ?>" size="60"/></p></td>
      <td bgcolor="#FF7373" width="89">
      


<?

// HIER WIRD ÜBERPRÜFT, OB DER WERT GELESEN NICHT MEHR NULL IST ODER NULL, UM DASS ENTSPRECHENDE BILD ZU POSTEN!
	$gelesen = htmlentities($searchEntry['gelesen']);

if($gelesen == NULL ) echo" <img src='../../messageclose.png' width='16' height='16' />";
	else 
	echo" <img src='../../messageopen.png' width='16' height='16' />"; 
	
  ?>

      </td>
      <td bgcolor="#FF7373" width="194"><p>Datum: <?php echo htmlentities($searchEntry['sendezeit']); ?></p>
      <p>Uhrzeit: <?php echo htmlentities($searchEntry['uhrzeit']); ?></p></td>
    </tr>
  </table>
  
  
<!-- *****************************************************öffnet die nachricht**********rotebereich*********************************** -->
<dia id="msg<? echo $nachricht_id ?>_text">
<table width="793" border="0">
   <tr>
     <td width="427" style="width:55%"  rowspan="5" bgcolor="#FF4040" ><?php $text =  htmlentities($searchEntry['nachrichttext']); 
	 
	 ?>
     
     </td> 
     <td width="1" rowspan="5" bgcolor="#FF7373" >&nbsp;</td>
     <td width="1" rowspan="5">&nbsp;</td>
     <td width="78" >Absender.:</td>
     <td width ="111"><?php
	 
	// hier wird die nachricht id an einer variable übergeben 
	$nachricht_id = htmlentities($searchEntry['nachricht_id']);
	
	echo htmlentities($searchEntry['sender']); 
	$empfaenger = htmlentities($searchEntry['sender']);?>
    <input type="hidden" name="empfaenger"  value ="<? echo $empfaenger ?>" size="60"/>
   <?php
    $empfaenger_id = htmlentities($searchEntry['sender_id']);?> 
	<input type="hidden" name="empfaenger_id"  value ="<? echo $empfaenger_id ?>" size="60"/></td>
     <td width="14">&nbsp;</td>
     <td width="110"><a href="antwort.php?absender=<?php echo $empfaenger?>&empfaenger_id=<?php echo $empfaenger_id ?>&betreff=<?php echo $betreff ?> "target="_self">antworten</a></td>
   </tr>
   <tr>
     <td>Mitgl. Nr.:</td>
     <td><?php echo htmlentities($searchEntry['sender_id']); ?></td>
     <td>&nbsp;</td>
     <td><a href="deletemail.php?nachricht_id=<?php echo $nachricht_id ?>">Nachricht löschen</a></td>
     <td width="8">&nbsp;</td>
   </tr>
   <tr>
     <td></td>
     <td></td>
     <td>&nbsp;</td>
     <td></td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
</table> 
</dia>

<br />

  <?php endforeach; ?>

 
<script src="http://code.jquery.com/jquery-latest.js"></script>

<script type="text/javascript">
$(function() {  //Kurzschreibweise für $(document).ready

  $('a.showMsg').click(function() { 
    //Extrahieren der Nachrichten-ID 
    var msgId=String($(this).attr('id')).replace(/^msg/,'');
    
    var msg=$(this).attr('id')+"_text";
    $('#'+msg).slideToggle();
    markread(msgId);
  });
});


function markread(msgId)
{
  if($('#msg'+msgId+'_flag').length)
  {   
    $.get('viewMessage.php?id=<? echo $nachricht_id; ?>',//Pfad zur viewMessage.php, ggf. anpassen
          {id:msgId},       //id der Nachricht
          function ()       //callback
                  {
                    //Bild austauschen
                    $('#msg'+msgId+'_flag')[0].setAttribute("src='../../messageopen.png' width='16' height='16'")
                    
                    //ID des Bildes entfernen, damit nicht mehrmals der Request ausgeführt wird
                    $('#msg'+msgId+'_flag')[0].removeAttribute('id');
                  }
          );
  }
} 
</script>
</body>
</html>


Danke,, viele grüße
 
Hab ich doch beschrieben:
Aufbau der ID:
Code:
msg?_flag
(Das Fragezeichen steht für die ID der Nachricht)


In deinem Code sollte das ca. so gehen:
BISHER:
PHP:
<?

// HIER WIRD ÜBERPRÜFT, OB DER WERT GELESEN NICHT MEHR NULL IST ODER NULL, UM DASS ENTSPRECHENDE BILD ZU POSTEN!
    $gelesen = htmlentities($searchEntry['gelesen']);

if($gelesen == NULL ) echo" <img src='../../messageclose.png' width='16' height='16' />";
    else 
    echo" <img src='../../messageopen.png' width='16' height='16' />"; 
    
  ?>

NEU:
PHP:
<?php
  // HIER WIRD ÜBERPRÜFT, OB DER WERT GELESEN NICHT MEHR NULL IST ODER NULL, 
  // UM DASS ENTSPRECHENDE BILD ZU POSTEN!
  $gelesen = htmlentities($searchEntry['gelesen']);

  if($gelesen == NULL ) 
    {
      echo '<img src="../../messageclose.png" width="16" height="16"  
                 id="msg'.$nachricht_id.'_flag" />';
    }
  else
    {
      echo ' <img src="../../messageopen.png" width="16" height="16" />'; 
    }
?>
 
boaar krass es klappt ! dankeee weiß gar nicht wie ich mich bedanken kann..thx!!

hät noch ne frage, und zwar bei ilove -> http://www.ilove.de/ ist unten sone slideshow..
die ist ja mit javascript aufgebaut weißt du zufällig wo man sowas her bekommt fertig bzw. würd wenn es sowas nicht gibt wenn dus machen würdest auch gegen vergütung machen will auch jeden fall sowas auf meiner website haben......


Viele grüße
thehasso
 

Neue Beiträge

Zurück