yii驗證碼不刷新是什么原因
后臺登陸調用驗證碼,點擊驗證碼不刷新,沒有反應(所有驗證碼配置,參數都是正確的)。
找錯的時候發現可以刷新驗證碼的頁面比不可以刷新驗證碼的頁面多了一段?js?代碼,用來處理點擊驗證碼刷新的事件。
(相關教程推薦:yii框架)
為什么會少了一段代碼?原來就是因為控制器分別調用了?renderPartial?和?render.??下面就說說它們的區別:
在進行頁面輸出渲染的時候。
render??輸出父模板的內容,將渲染的內容,嵌入父模板。
renderPartial??則不輸出父模板的內容。只對本次渲染的局部內容,進行輸出。
同時還有個重要的區別:
render??函數內部默認執行?processOutput($output)?函數,?會將把組件,比如??CTreeView??里面注冊到?CClientScript??里面的需要的腳本進行渲染輸出。
而?renderPartial()??默認不自動渲染輸出客戶端腳本,需要進行參數的指定,才會輸出:
renderPartial($view,$data=null,$return=false,$processOutput=false)
指定?processOutput??為??true??即可。
就像我們遇到的問題,用?renderPartial?時,頁面沒有輸出驗證碼刷新的那段?js?。所以就沒有反應。
PHP中文網,大量yii框架教程,歡迎學習!
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END