Marquee Fehler mit id

Status
Nicht offen für weitere Antworten.

GalaxyWarrior

Erfahrenes Mitglied
Hi, ich lese eine .rdf News Datei aus und lasse das Ergebniss ( 15 Links ) als marquee ausgeben:

HTML:
<div class="ticker"><? echo "<marquee scrollamount='2' width='200px' height='20px' class='text'>".$news."</marquee>"; ?></div>
<div class="ticker2"><? echo "<marquee scrollamount='2' width='200px' height='20px' class='text'>".$news2."</marquee>"; ?></div>

Da ich aber die Links ander Formatiere als auf der Restlichen Seite habe ich in der CSS Datei noch dass eingefügt:

HTML:
#newsticker a	{
				display:block;
				list-style:none;
				/*border-width:1px 1px 2px 2px;
				border-color:silver silver gray gray;
				border-style:solid;*/
				color:ffffff;
				text-decoration:none;
				padding:1px 1px 1px 10px;
				margin:2px 2px 2px 2px;
				font-size:11px;
				font-family:courier new;
				}

#newsticker a:hover {
					display:block;
					list-style:none;
					/*border-width:2px 2px 1px 1px;
					border-color:gray gray silver silver ;
					border-style:solid;*/
					color:bbbbbb;
					text-decoration:none;
					padding:1px 1px 1px 10px;
					margin:2px 2px 2px 2px;
					font-size:11px;
					font-family:courier new;
					}

und dann den marquee um id erweiter

HTML:
<div id='newsticker' class="ticker"><? echo "<marquee scrollamount='2' width='200px' height='20px' class='text'>".$news."</marquee>"; ?></div>
<div id='newsticker' class="ticker2"><? echo "<marquee scrollamount='2' width='200px' height='20px' class='text'>".$news2."</marquee>"; ?></div>

Doch dann wird nurnoch der 1. Link jeweils ausgegeben, ohne id gehts. Hat jemand ne ahnung warumm, und vorallem wie ich ansonsten die Links formatiere

Gruß GalaxyWarrior
 
Moin

Mach das doch mit JavaScript, <marquee> ist kein HTML Standard.

Code:
<script type="text/javascript">
 <!--
 tNews=new Array();
 tNews[0]='Das ist ein Newstext';
 tNews[1]='Newstext mit Link <a href=http://www.otherpage.ch/index.php>Link<\/a>';
 tNews[2]='Newxtext3';
 tDelimiter  =' + + + ';
 tInterval   =10;
 tStop       =true;
 tRepeat     =2;
 tBorder     ='0';
 tWidth      =620;
 tPadding    =1;
 IE=document.all&&!window.opera;DOM=document.getElementById&&!IE;
 if(DOM||IE)
 {
 	var tGo;tPos=0;
 	tStop=tStop?'onmouseover="clearInterval(tGo)"'+
 	'onmouseout="tGo=setInterval(\'DM_ticken()\','+tInterval+')"':'';
 	tTxt=tDelimiter+tNews.join(tDelimiter);tNews=tTxt;
 	for(i=1;i<tRepeat;++i)
 	{
 		tNews+=tTxt;
 	}
 	document.write('<table border=0 width=100%>');
 	document.write('<div style="overflow:hidden;border:'+tBorder+';width:'+	tWidth+'px;padding:'+tPadding+'px 0px '+tPadding+'px 0px;">'+	'<span id="ticker" style="color: rgb(255, 255, 255); font-size: 10pt; font-family: Arial; position: relative;" '+tstop="">'+	tNews+'<\/span><\/nobr><\/div>');
 	document.write('<\/tr><\/td><\/table>');
 	tObj=IE?document.all.ticker:document.getElementById('ticker');
 	function DM_ticken()
 	{
 		tOffset=tObj.offsetWidth/tRepeat;
 		if(Math.abs(tPos)>tOffset){
 			tPos=0;
 		}
 		tObj.style.left=tPos;tPos--;
 	}
 	tGo=setInterval('DM_ticken()',tInterval);
 }
 -->
 </span></script>

Gruss FG

 
Hört sich gut an, wenn du mir bitte noch erklären könntest, wo ich das einbauen muss, da ich von JS keine Ahnung habe. Und wwie bekomme ich PHP Vars in JS? kann ich da einfach var=$var machen?

Gruß GalaxyWarrior
 
Moin

Das JavaScript kommt in die Datei in der du die News effektiv abspielst. für die PHP Variabeln musst du dann halt einfach

Code:
  tNews[1]='Newstext mit Link <a href=http://www.otherpage.ch/index.php> <\/a>';

Ob das funktioniert weiss ich allerdings nicht. Hab noch nie JavaScript mit PHP gemixt.

Die vars einfach einfach als var=$var deklarieren kannst du nicht, weil PHP eine Serverseitig Sprache ist, JavaScript jedoch eine Clientseitige.

Grüsse

FG
 
Dass ich das in diese Seite einbinden muss war mir klar, nur wie ich die Ausgabe bekomme nicht. Das mit den Vars ist schlecht, weil die Links ja in dieser Var stehen und Dynamisch sind. Oder hast du ne modifikation für dein JS mit welcher du die rdf Datei auslesen kannst?

Gruß GalaxyWarrior
 
Hallo

Ich hab das mal ausprobiert. Du kannst auch im JavaScript selber eine <?php ?> Dingens einbauen, funktioniert tadellos.

Die Ausgabe erfolgt über einen Timer und mit document.write();

tNews[0]='Das ist ein Newstext';
tNews[1]='Newstext mit Link <a href=http://www.otherpage.ch/index.php>Link<\/a>';
tNews[2]='Newxtext3';

Da oben definierst du deine Nachrichten. Wenn du die automatisch mit PHP erzeugen willst, kann du diese woe folgt ausklammern:

tNews[0]='<?php echo($var);?>';

Sollte hinhauen.

Gruss FG
 
Über was für nen Timer denn? und wie ist das mit document.write()? Muss ich dann z.B.
HTML:
<div><script language=JavaScript>document.write();</script></div>
machen?
 
Hallo

Nein. Alles was du machen musst, ist das hier anzupassen:

tNews[0]='Das ist ein Newstext';
tNews[1]='Newstext mit Link <a href=http://www.otherpage.ch/index.php>Link<\/a>';
tNews[2]='Newxtext3';

Halt soviele Male wie dus brauchst. Den Rest hab ich dir fixfertig geliefert. Für jede einzelne Nachricht definierst du ein weiteres tNews[4], tNews[5], etc.

In den ' ' kannst du machen was du willst. Du kannst PHP Code einfügen, Html Tags einfügen, etc. Einfach nur das ganze Script kopieren (im <head> Tag).

Hochladen, und das Zeug flattert als Lauftext über deinen Bildschirm.

Gruss FG
 
Hallo

Übernimm es mal genau so wie ich es kopiert hab, und probiersmal aus.

<html>
<head>
<meta>
hier das script
</head>

Gruss FG
 
Status
Nicht offen für weitere Antworten.
Zurück