2010-06-20 49 views
1

我有这样的打印语句:问题与印刷JavaScript和HTML用PHP

print "<a href='#' onClick='document.getElementById(\"myheader\").innerHTML=\"\"'".$rowQuery['keyword']."&nbsp; ·&nbsp;</a>"; 

不幸的是,它打印:

<a ·&nbsp;="" keyword&nbsp;="" onclick="document.getElementById("myheader").innerHTML=""" href="#"/> 

我不知道为什么,任何帮助将是有益的。由于它的打印方式,我无法看到屏幕上的任何内容,功能也无法正常工作。

注($ rowQuery [“关键字”] =“关键字”,在这种情况下,因此它正在评估,这是没问题的。问题是,它打印很奇怪)

(当我使用HTML而不是PHP的使用这一行打印:

<a href="#" onClick="document.getElementById('myheader').innerHTML=''">ALL</a> 

它的工作原理完全罚款)

+0

打印奇怪?如在,这些属性打印乱序? – 2010-06-20 07:11:26

+0

是的,正如你所看到的,它以不同的顺序打印出来,这意味着它根本不起作用(我的意思是我看不到应该在屏幕上打印什么,当然javascript线也不起作用,或者是 – user220755 2010-06-20 07:13:53

+0

我怀疑它实际上是这样打印的,我打赌你正在调试它的浏览器向你展示了一个DOM表示,而不是实际的源代码 – deceze 2010-06-20 07:14:27

回答

0

我认为你缺少的<a...标签关闭

你有:<a href=... some description</a>

而不是<a href=... >some description</a>

尝试是这样的(不知道我得到的 '>' 正确的位置:

print "<a href='#' onClick='document.getElementById(\"myheader\").innerHTML=\"\"'".$rowQuery['keyword']">."&nbsp; ·&nbsp;</a>";

4

你错过了关闭>为开头<a>元素,也许还有其他语法问题,我现在没有发现。浏览器尽可能地解释它,这最终会变得很奇怪。

为了减少这样的问题(并避免大量引用逃逸),离开静态文本静态和只能随声附和动态内容是这样的:

<a href="#"><?php echo $rowQuery['keyword']; ?></a> 
2

你会得到一个什么样的获取写入一个更准确的图片到PHP的输出流,通过查看源代替FireBug。

您的代码似乎并未关闭<a>标记。它看起来还有一个扩展字符·在你的非破坏空间之间。您应该确保它在您的字符集中受支持,或者用一个HTML实体替换它,例如&#8226;。如果您必须使用扩展字符,通常建议确保您的PHP脚本,HTML元标记和PHP服务器编码配置设置都指向相同的字符集,或者一个杂散扩展字符可以在渲染时终止页面浏览器。如果你坚持使用UTF-8,你可能会遇到最少的问题(尽管并非总是如此)。