2012-03-08 17 views
0

我使用Securimage制作的验证码。为什么这个HTML代码只有在用PHP回显时才能正常工作?

当我写在HTML部分添加以下代码:

<tr> 

<td><img id='captcha' src='/securimage/securimage_show.php' height='50' 
width='135' alt='CAPTCHA Image' /><br> 

<a href='' onclick=\"document.getElementById('captcha').src 
'/securimage/securimage_show.php?' + Math.random(); return false\"> 
[ Different Image ]</a></td> 
<td><input type='text' name='captcha_code' size='20' maxlength='6' /></td> 

<tr> 

...我点击“不同的图像”来改变验证码,整个页面刷新,从而失去了所有的文字输入到文本字段。

但是,当我把所有的代码,并把它变成PHP echo语句,验证码,而不刷新整个页面(这是我想要什么)

难道你们知道为什么会发生这种情况的变化?这真是令人不安!

在此先感谢

+0

试着摆脱'onclick'周围的'\''你不需要转义引号 – 2012-03-08 22:07:10

+0

嗨Rocket,谢谢你的回应。是的,删除反斜杠的确解决了我的问题。为什么这会导致html触发刷新.. 再次感谢 – eric01 2012-03-08 22:11:56

+0

这是“刷新”的页面,因为'href'是'''',这意味着相同的页面'onclick'没有被读取,因为' \“的,所以它通常在链接之后。 – 2012-03-08 22:14:09

回答

3

尝试从onclick属性中删除反斜杠。当你从PHP回应这个问题时,PHP可能会将它们解开。

+0

嗨schtever,是的,你是对的。感谢那。 正如我在上面的评论中所说的,我觉得奇怪的是反斜杠会导致html刷新整个页面。 非常感谢 – eric01 2012-03-08 22:12:58

+0

“也许PHP将它们融化”。 'echo“\”“'这会打印一个''''。你需要在引号里面加引号。 – 2012-03-08 22:13:11

+0

@ eric01:它本身并不令人耳目一新。它跟着'href',因为'onclick'没有被读取。 – 2012-03-08 22:14:36

相关问题