我想通过javascript在captcha.php文件中获取$ security_code的值,该文件位于captchaCode.php文件中。我不能在captcha.php文件中包含此文件。这是Captcha_code.php的代码,此代码不在此文件的任何函数内:
$captcha = new CaptchaCode();
$security_code = str_encrypt($captcha->generateCode(6));
这是我的javascript函数,通过这个函数我想得到$ security的值:
function refresh_captcha()
{
var img = document.getElementById('captcha_img');
img.src = '<?php echo "/captcha_images.php"?>';
jQuery("#captcha_img").attr("src",img.src);
jQuery("#security_code").val("<?php echo $security_code;?>");
}
实际上,此代码用于在刷新验证码而不刷新页面时获取新的加密值。
答案 0 :(得分:1)
您必须更改与图像源分配相关的代码。无需分配PHP标记。只需像这样分配PHP文件名。
function refresh_captcha()
{
var img = document.getElementById('captcha_img');
img.src = '/captcha_images.php';
jQuery("#captcha_img").attr("src",img.src);
/*This line will not work without Ajax request*/
/*jQuery("#security_code").val("<?php echo $security_code;?>");*/
}
答案 1 :(得分:0)
在你的php文件captcha.php中,
$captcha = new CaptchaCode();
$security_code = str_encrypt($captcha->generateCode(6));?>
<script>
var code = '<?= $security_code ?>';
</script><?php // rest of the php codes
在您的js文件中
function refresh_captcha()
{
var img = document.getElementById('captcha_img');
img.src = code;
jQuery("#captcha_img").attr("src",img.src);
}
答案 2 :(得分:0)
向页面发送ajax请求,仅输出如下代码:
文件:outputcode.php(仅限演示)
$captcha = new CaptchaCode();
$security_code = str_encrypt($captcha->generateCode(6));
echo $security_code;
exit;
接下来,使用AJAX获取该值,例如在jQuery
中$("#refresh_code").on('click', function() {
$.get("outputcode.php", function(data) {
//data will now hold the new code
});
});
希望这会给你一个想法。
答案 3 :(得分:0)
如果您不能包含这些文件,则需要使用ajax请求。
captcha.php
$captcha = new CaptchaCode();
$security_code = str_encrypt($captcha->generateCode(6));
echo json_encode($security_code);
在你的js中:
<img src="" id="captcha_img" onclick="refresh_captcha()"/>
<script>
function refresh_captcha()
{
$.ajax({
url : 'captcha.php',
type : 'POST',
dataType : 'json',
success : function (security_code) {
var source = security_code;
var img = document.getElementById('captcha_img');
img.src = source;
jQuery("#captcha_img").attr("src",img.src);
jQuery("#security_code").val(source);
}
});
}
</script>
img上的onclick事件可能完全错误,但出于练习的目的,我已将它放在那里。
取决于$ security_code是什么,例如,你可以不使用JSON。