2011-07-12 21 views
0

我已經創建了自己的驗證碼,並且將此代碼插入我的頁面<span class="capch"><img src="captcha.php" /></span>當我使用jQuery的html時,不會刷新驗證碼

Captcha.php生成一個新字符串並將其存儲到$ _SESSION中。這是完美的作品,但是當用戶插入一個錯誤的代碼時,我需要刷新這個圖像。我這樣做:$('.capch').html('<img src="captcha.php" />');

爲什麼它不顯示一個新的代碼?它真的應該,不應該?或者我在這裏失去了一些東西?

+0

你確定執行'.html()'調用嗎?圖像是否從瀏覽器緩存中提供? –

回答

5

var _cb = new Date(); 
$('.capch').html('<img src="captcha.php?v='+_cb.getTime()+'" />')
我會添加一個 ?v=2作爲緩存驅動程序,其中「2」是每次更新時遞增的數字。即使圖像來自一個PHP文件,它仍然可以緩存,因爲它的頭文件

+1

而不是需要跟蹤增加的數字,我只是簡單地將它作爲一個隨機字符串。 – badideas

+0

'?v = <遞增數字>'不是一個好選擇。如果生成了一些,並刷新頁面,則「?v = 2」圖像仍將被緩存。 – thirtydot

+0

@ zaphod是更好的主意 – locrizak