2014-03-06 91 views
0

我在做一个php项目! 问题是数组打印不正确。 其实我试图从MySQL使用PHP检索文本数据。 即时能够检索数据,但即时在文档打印它不打印,因为我想!阵列在php中未正确打印

echo "<td><p onclick=alert('".$arr[$t]."'); ><u>VIEW</u></p></td>"; 

$ arr [$ t]是我从数据库中检索到的文本数据。 它应打印像这样(假定$ ARR [$ t]的有数据 “这是一个段落”)

但实际输出是这样的..
输出在CHROME

<td><p onclick="alert('this" is a paragraph'); ><u>VIEW</u></p></td> 

在FIREFOX
输出

<td><p paragraph');="" a="" is="" onclick="alert('this" ><u>VIEW</u></p></td> 


我不知道为什么会这样。
请提前
感谢帮助我走出这个.. :)

回答

1

语法从Chrome输出突出赋予它了 - 你有你的嵌套双引号内使用双引号,这是无效的HTML。

在渲染它之前,您应该使用类似htmlspecialchars(http://au2.php.net/manual/en/function.htmlspecialchars.php)的方法来转义所有输出。另外,你应该用引号将你的onclick处理程序包装起来 - 例如。 onlick="alert('stuff stuff more stuff')",否则将无法正确解析。

+0

感谢您的回复sevenseacat! 实际上,如果文本数据是单个单词,它的工作正常.. 如果文本数据有超过1个单词,第一个单词是在双引号之间打印..其余单词是在引号之后打印..多数民众赞成确切的问题! – bharat