这里我想在javascript函数中使用会话变量的值。我试过了
var varname = '<?php echo $_SESSION["variable_name"]; ?>';
但是它没有传递它显示字符串的值
其实我想在java脚本端查看验证码。 在这里我已经制作了contactus.php文件,其中我从rand函数生成验证码值。然后我将此值存储在会话变量中。在这里,我已经使validation.js文件验证联系我们表单字段,所以在同一个文件中我想验证captha所以我一直在尝试下面的代码,但它不起作用。
var cap = document.frm.captcha.value;
var ca = '<?= addslashes($_SESSION["code"]); ?>';
alert (cap); //ITs shows my entered value perfectly
alert (ca); //but it doesn't show generated captcha value. it simply print '<?= addslashes($_SESSION["code"]); ?>'//
if(cap!=ca)
{
alert("Insert correct captcha code");
document.frm.captcha.focus();
return false;
}
我检查了会话变量值,它在php页面上正常工作但是dosen; t在javascript页面上工作。
答案 0 :(得分:0)
试试这样:
<script type="text/javascript">
var varname = <?php echo $_SESSION["variable_name"]; ?>;
</script>
答案 1 :(得分:0)
<script type="text/javascript">
<?php echo "var variable = '". $_SESSION['variable']."';" ?>;
</script>
答案 2 :(得分:0)
包含此代码的文件必须命名为.php
,并且必须是PHP文件开头的session_start();
。
然后这段代码应该有用。
答案 3 :(得分:0)
有几个可能性,为什么你的代码没有工作。
要修复这3个错误,您需要使用以下代码 -
<?php session_start(); ?>
<script type="text/javascript">
var varname = '<?= addslashes($_SESSION['variable_name']); ?>';
</script>
如果您的会话变量不是字符串或数字,则需要将其打包到JSON对象。在这种情况下,您可以进行以下操作:
<?php session_start(); ?>
<script type="text/javascript">
var varname = <?= json_encode($_SESSION['variable_name']); ?>;
</script>
最后一个代码变体将使所有类型的变量对JS都很友好。也是字符串。
例如,使用asd'd"sa
字符串中的json_encode,您将获得"asd'd\"sa"
字符串。
<强> UPD:强> 如果您像JS文件一样使用此文件,如下所示:
<script type="text/javascript" src=".../path/to/file.php"></script>
正确的工作,您需要使用以下代码。
<?php
session_start();
header('Content-Type: text/javascript');
?>
var varname = '<?= addslashes($_SESSION['variable_name']); ?>';