当我点击我给定的刷新链接时,我的验证码只刷新一次。如果我再次点击刷新链接,它不会刷新验证码。我不明白为什么会这样。
这是我的代码:
<a href='javascript: refresh_captcha();'>refresh</a>
function refresh_captcha()
{
<?php
$captcha1 = new CaptchaCode();
$code = str_encrypt($captcha1->generateCode(6));
?>
var img = document.getElementById('captcha_img');
img.src = '<?php echo "/captcha_images.php?width=120&height=40&code=$code"?>';
document.getElementById ("captcha_img").src = img.src;
}
答案 0 :(得分:2)
这是我的方法
<p>
<img id='captcha_img' style='border: 1px solid #CBD8E5;' src='/captcha.php?img=<?=time();?>'/><br/>
<a href="#" onclick="document.getElementById('captcha_img').src='captcha.php?img=' + Math.random(); return false">Reload Captcha</a>
</p>
答案 1 :(得分:0)
尝试用javascript ajax调用替换你的函数
function refresh_captcha()
{
$.ajax({
type:"GET"
url: "/captcha_images.php?width=120&height=40&code=$code"?>'
success: function(msg)
{
document.getElementById ("captcha_img").src = msg;
},
error:functon(){alert("some error occured");}
});
}
答案 2 :(得分:-1)
使用以下代码
<a href='javascript: refresh_captcha();'>refresh</a>
function randomString(length, chars) {
var result = '';
for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
return result;
}
function refresh_captcha()
{
var code = randomString(6, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
var img = document.getElementById('captcha_img');
img.src = '<?php echo "/captcha_images.php?width=120&height=40&code="?>'+code;
document.getElementById ("captcha_img").src = img.src;
}
答案 3 :(得分:-1)
你知道如何在服务器上评估php页面。
表示:
当在服务器上解析php页面时,会对php代码进行评估并将评估结果发送回页面。然后将页面发送到浏览器。我的意思是说,你将只有静态内容为html javascript,css在你的浏览器上。如果你想评估你的PHP代码,那么你必须向服务器发送请求。
可以通过两种方式发送。
按页面重新加载
通过AJAX。
所以,如果您不想重新加载页面,那么您应该去ajax。 然后你的代码将是
<a href='javascript: refresh_captcha();'>refresh</a>
function refresh_captcha()
{
// ajax call to server to get new captcha string
// evaluate this code on server and send string back to browser
//<?php
// $captcha1 = new CaptchaCode();
// $code = str_encrypt($captcha1->generateCode(6));
//
//?>
// var code = <ajax response>
var img = document.getElementById('captcha_img');
img.src = '/captcha_images.php?width=120&height=40&code='+code; // change this line
//document.getElementById ("captcha_img").src = img.src;
}
for ajax call读取此内容 http://www.w3schools.com/ajax/