Hallo Leuts,
ich bin gerade dabei mit jQuery, PHP & Co. ein kleines Webprojekt hochzuziehen. Etwaige Fehlermeldungen werden in einer Datenbank gespeichert und im 1 Sekunden Takt per AJAX geladen.
Die Javascript-Funktion hierfür ist folgende:
function get_notifications()
{
var oMessages = "";
$.get("includes/get.notifications.php", function(theXML){
$(theXML).find('xMessage').each(function(){
var mymsg = $(this).find('myMessage').text();
var title = $(this).find('myTitle').text();
$.noticeAdd({
text: '<h3>' + title + '</h3>' + mymsg,
stay: false
});
});
});
}
Die get.notifications.php:
<?php
require('../includes/config.inc.php');
require('../includes/core.class.php');
require('../includes/mysql.class.php');
session_start();
$oQuery = 'SELECT message FROM #__messages WHERE display=\'1\' ORDER BY id ASC';
$oMessages = iMySQL::select($oQuery);
if (!$oMessages) {
echo iMySQL::get_error();
exit;
}
$iXML = '';
$iXML = "<?xml version=\"1.0\"?>\n";
$iXML .= "<sysMessages>\n";
foreach ($oMessages as $oMsg) {
$iXML .= "<xMessage>\n";
$msg = $oMsg['message'];
$iXML .= "<myMessage title=\"Notification\" msg=\"" . $msg . "\"></myMessage>\n";
$iXML .= "</xMessage>\n";
}
$iXML .= "</sysMessages>";
echo $iXML;
?>
Die Daten werden abgerufen und per XML übertragen. Ist beispielsweise nur eine Nachricht vorhanden, wird nur das erste Zeichen der Nachricht angezeigt. Sind mind. zwei NAchrichten vorhanden, wird bei allen Messages die komplette Nachricht angezeigt.
Vielleicht kann mir jemand helfen.