2012-03-08 26 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

相關問題