Javascript Tooltip und PHP

H3llGhost

Registered User
Hallo Leute

ich wollte folgendes gerne machen:
Ich habe einen Link, wenn man darüber geht soll er ein paar Informationen mit Hilfe folgenden Skript ausgeben:

<a href="index.htm" onmouseover="return escape('Irgendein Text')">Zur Startseite</a>

Skript: Tooltips per JavaScript / DHTML

Nun wollte ich das aber mit PHP kombinieren:

<a href="index.htm" onmouseover="return escape('echo \"lala\"')">Zur Startseite</a>

Das geht leider nicht.
Warum?
Kann mir jemand bitte helfen?!
 
Also sollte es eher so heißen:

<?php echo \'lala\'; ?>

???

Und wie müsste es heißen, wenn es in solch eine Zeile soll:

PHP:
echo "<b><a href=\"".$g_options["scripturl"]."?mode=servers&server_id=$server_id&game=$game\" style=\"color:black;text-decoration:none;\">".$rowdata["name"]."</a></b>";
 
PHP:
echo '<b><a href="'
    .$g_options['scripturl']
    ."?mode=servers&server_id=$server_id&game=$game\" "
    .'style="color:black;text-decoration:none;"'
    .'onmouseover="return escape(\''
    .$rowdata['text']
    .'\')">'
    .$rowdata['name']
    .'</a></b>';

huschi.
 
Hallo

wenn ich das aber in eine rowdata packe muss ich doch erst noch sagen, dass er die Sachen aus der MySQL-DB nimmt oder?
 
Nun stell Dich nicht so an! Mir ist doch relativ egal, wo er die Daten herholt.
Wenn Du gerne bei jedem Link den selben Text anzeigen lassen willst (:confused: ), dann schreib halt "blblbl" rein.
Du hast gefragt wo es rein soll, ich habe Dir ein Beispiel gegeben.
Für die Umsetzung bist immer noch Du allein verantwortlich!

huschi.
 
Hallo

hier ist ein kleiner Teil von dem Quelltext der damit ausgeführt werden soll:

PHP:
<?php

		$i=0;
		for ($i=0; $i<count($servers); $i++)
		{
			$rowdata = $servers[$i]; 
			
			$server_id = $rowdata['serverId'];
			
			$c = ($i % 2) + 1;
			
			if ($rowdata["statusurl"])
			{
        $addr = $rowdata["addr"];
				#$addr = "<a href=\"" . $rowdata["statusurl"] . "\">"
				#	. $rowdata["addr"] . "</a>";
			}
			else
			{
				$addr = $rowdata["addr"];
			}
			
			$kills     = $rowdata['kills'];
			$headshots = $rowdata['headshots'];
			
		  
		  $player_string = $rowdata['act_players']."/".$rowdata['max_players'];
		  $map_teama_wins = $rowdata['map_ct_wins'];
		  $map_teamb_wins = $rowdata['map_ts_wins'];

?>

<table width="95%" align="center" border=0 cellspacing=1 cellpadding=2 bgcolor="<?php echo $g_options["table_border"]; ?>">
				<tr valign="bottom" bgcolor="<?php echo $g_options["table_head_bgcolor"]; ?>">
					<td style="padding:4px;"  width="37%"><?php echo $g_options["font_small"]; ?><font color="<?php echo $g_options["table_head_text"]; ?>">&nbsp;Server</font><?php echo $g_options["fontend_small"]; ?></td>
					<td style="padding:4px;"  width="23%"><?php echo $g_options["font_small"]; ?><font color="<?php echo $g_options["table_head_text"]; ?>">&nbsp;Address</font><?php echo $g_options["fontend_small"]; ?></td>
					<td style="padding:4px;"  width="6%" align="center"><?php echo $g_options["font_small"]; ?><font color="<?php echo $g_options["table_head_text"]; ?>">&nbsp;Map</font><?php echo $g_options["fontend_small"]; ?></td>
					<td style="padding:4px;"  width="6%" align="center"><?php echo $g_options["font_small"]; ?><font color="<?php echo $g_options["table_head_text"]; ?>">&nbsp;Played</font><?php echo $g_options["fontend_small"]; ?></td>
					<td style="padding:4px;"  width="10%" align="center"><?php echo $g_options["font_small"]; ?><font color="<?php echo $g_options["table_head_text"]; ?>">&nbsp;Players</font><?php echo $g_options["fontend_small"]; ?></td>
					<td style="padding:4px;"  width="6%" align="center"><?php echo $g_options["font_small"]; ?><font color="<?php echo $g_options["table_head_text"]; ?>">&nbsp;Kills</font><?php echo $g_options["fontend_small"]; ?></td>
					<td style="padding:4px;"  width="6%" align="center"><?php echo $g_options["font_small"]; ?><font color="<?php echo $g_options["table_head_text"]; ?>">&nbsp;Headshots</font><?php echo $g_options["fontend_small"]; ?></td>
					<td style="padding:4px;"  width="6%" align="center"><?php echo $g_options["font_small"]; ?><font color="<?php echo $g_options["table_head_text"]; ?>">&nbsp;Hpk</font><?php echo $g_options["fontend_small"]; ?></td>
				</tr>
				<tr valign="middle" bgcolor="<?php echo $g_options["table_bgcolor$c"]; ?>">
					<td align="left" style="background:white;color:black"><?php
						echo $g_options["font_normal"];
            $imgfile = $g_options["imgdir"] . "/game-$game.gif";
            echo "<img style=\"vertical-align:middle;\"src=\"";
            if (file_exists($imgfile))
              echo $imgfile;
            else
              echo $g_options["imgdir"] . "/game.gif";
            echo "\">&nbsp;";
            echo "<b><a href=\"".$g_options["scripturl"]."?mode=servers&amp;server_id=$server_id&amp;game=$game\" style=\"color:black;text-decoration:none;\">".$rowdata["name"]."</a></b>";
						echo $g_options["fontend_normal"]; ?></td>
					<td align="left" style="background:white;color:black"><?php
						echo $g_options["font_normal"];
						echo "<a href=\"hlsw://$addr\" style=\"color:black\">$addr</a>";
						echo $g_options["fontend_normal"];
					?></td>
					<td align="center" style="background:white;color:black"><?php
						echo $g_options["font_normal"];
						echo $rowdata['act_map'];
						echo $g_options["fontend_normal"];
					?></td>
					<td align="center" style="background:white;color:black"><?php
         	  $stamp = time()-$rowdata['map_started'];
         	  $hours = sprintf("%02d", floor($stamp / 3600));
	       	  $min   = sprintf("%02d", floor(($stamp % 3600) / 60));
	      	  $sec   = sprintf("%02d", floor($stamp % 60)); 
						echo $g_options["font_normal"];
						echo $hours.":".$min.":".$sec;
						echo $g_options["fontend_normal"];
					?></td>
					<td align="center" style="background:white;color:black"><?php
						echo $g_options["font_normal"];
						echo $player_string;
						echo $g_options["fontend_normal"];
					?></td>
					<td align="center" style="background:white;color:black"><?php
						echo $g_options["font_normal"];
						echo number_format($kills);
						echo $g_options["fontend_normal"];
					?></td>
					<td align="center" style="background:white;color:black"><?php
						echo $g_options["font_normal"];
						echo number_format($headshots);
						echo $g_options["fontend_normal"];
 
Habe weder Zeit noch Lust mich jetzt durch deinen "Quälcode" zu arbeiten... Aber wenn ich es auf die schnelle richtig verstanden habe, willst du den gesamten "<a href.....</a>"-Teil aus der Datenbank holen und dann noch die Variablen "einsetzen". Dann solltest du dich mal mit eval() beschäftigen...

PHP: eval - Manual


Mfg

Stefan Schuster
 
Merksatz: eval() is evil!

Vor allem, wenn man wie es bei H3llGhost den Anschein erweckt, nicht wirklich sattelfest ist.
Für das Ersetzen von Platzhaltern in Strings macht sich da preg_replace evtl. etwas günstiger.

Die Antwort auf seine Frage (welche leider nicht wirklich klar aus dem Thread hervor geht) sollte Huschi schon ausführlich geliefert haben.
String-Concatenation ist nun wirklich keine Geheimwissenschaft. Mit ein bisschen Nachdenken sollte klar sein, wie man festen Text und Variablen zusammenbringen kann.

Also z.B. so im PHP-Block:
Code:
echo 'text '.$scalar.' nochmal text '.$array['key'].
  ' wieder text '.$array2[$variabler_key];
oder besser:
Code:
printf(
  "text %s nochmal text %s wieder text %s",
  $scalar, $array['key'], $array[$variabler_key]
);

oder auch so außerhalb des PHP-Block:
Code:
text <?php echo $scalar; ?> nochmal text <?php $array['key']; ?> u.s.w.

@H3llGhost: Wenn das jetzt noch nicht gereicht hat, dann solltest du ernsthaft darüber nachdenken, es lieber sein zu lassen...
 
Last edited by a moderator:
Also eine kleine Frage am Rande:

Wenn ich einen echo-Befehl benutze und damit eine Variable öffne. Und der Inhalt in dieser Variable ist im Original auch mit einem echon-Befehl versehen, dann kann ich das zweite Echo einfach weglassen oder?

PHP:
$test = "echo 'test'";
echo $test;

=> Error bla bla

PHP:
$test = "test";
echo $test;

=> Kein Fehler (und die hier kann ich auch für mein Beispiel nutzen oder?!)
 
Bei dem oberen Beispiel würde er dir einfach nur

echo test

hinschreiben. Das zweite ist wohl das richtig!!!
 
Und der Inhalt in dieser Variable ist im Original auch mit einem echon-Befehl versehen
Du macht total falsche Annahmen.
Wenn in einem String "echo" steht, dann ist das kein Befehl, sondern eine Zeichenkette.
Eine Zeichenkette ist einfach nur eine Aneinanderreihung von Chars. Ob die nun "schnarz" ergeben oder "echo" ist dabei absolut irrelevant.

Du musst beim Verstehen von Code nachvollziehen, was der Interpreter/Compiler der Sprache zur Laufzeit damit anstellt.
Wenn du das nicht lernst zu machen, wirst du nie richtig Programmieren können - das ist die essentiellste Fähigkeit überhaupt.

Und BTW: Gewöhn dir mal eine ordentliche Verwendung von Begriffen an. Ein echo "öffnet" eine Variable nicht, sondern "gibt sie aus" - ein himmelweiter Unterschied. Nur so am Rande. Kein Wunder, wenn dich oft keiner versteht.
 
Last edited by a moderator:
Back
Top