我在弹出javascript时出现问题。我希望弹出窗口显示图像原因/标题。
任何人都知道该怎么做?
代码:
<?
$badgesql = mysql_query("select * from usr_badge where user = '$_SESSION[usr_name]'");
$user = mysql_query("select * from usr_users where username = '$_SESSION[usr_name]'");
$usr = mysql_fetch_array($user);
$vipsql = mysql_query("select * from usr_vip where userid = '$usr[id]'");
$vipcheck = mysql_num_rows($vipsql);
$badgecheck = mysql_num_rows($badgesql);
$checkit = $badgecheck + $vipcheck;
if($checkit==0)
echo("You have 0 Badges");
if($badgecheck!=0)
{
while($badge = mysql_fetch_array($badgesql))
{
echo('<img src="/css/badges/'.$badge[badge].'" onclick="alert('.$badge[reason].');" />'); }
}
//Display VIP Badges
if($vipcheck!=0)
{
$vipbadge = mysql_fetch_array($vipsql);
$vip1 = mysql_query("select * from usr_vipdb where id = '$vipbadge[vipid]'");
$vip2 = mysql_fetch_array($vip1);
echo('<img src="'.$vip2[url].'" alt="This user is a VIP!" />');
}
?>
提前致谢!
答案 0 :(得分:1)
问题是您需要alert()
内的一些引号。
echo('<img src="/css/badges/'.$badge['badge'].'" onclick=\'alert("'.htmlentities($badge['reason']).'");\' />');
另外,$badge[reason]
是不好的做法(除非理由是我认为不变的常数)。使用上面示例中的单引号。
最后,在将内容打印到HTML时使用htmlentities()
。
答案 1 :(得分:0)
内联JavaScript并不完全合适。当您echo
字符串时,onclick
属性将包含类似于以下内容的值:
alert(image reason);
您需要用引号括起图像的原因才能使其正常工作。因此,您的代码应该是这样的:
echo '<img src="/css/badges/'.$badge[badge].'" onclick="alert(\''.$badge[reason].'\');" />'