如何在javascript中获取php变量

时间:2013-09-10 07:16:48

标签: php javascript

我想通过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;?>");
}

实际上,此代码用于在刷新验证码而不刷新页面时获取新的加密值。

4 个答案:

答案 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。