我有这个工作脚本但是当我更改它以检索(假设)$_SESSION["username"]
内的值时,它不会检索任何内容。整个页面保存为.php,因为我正在使用一些使用PHP的代码。
代码:
echo "<script type=text/javascript>";
echo "var hidden = false;";
echo "function actiondb1() {";
echo "if(!hidden) {";
echo "document.getElementById(\'clickdb1\').style.visibility = \'hidden\';";
echo "document.getElementById(\'db1\').style.visibility = \'visible\';";
echo "document.getElementById(\'db1\').disabled = false;";
echo "document.getElementById(\'db1\').value =".$_SESSION["username"];.";";
echo "}";
echo "}";
echo "</script>";
如何让脚本正确检索$_SESSION["username"];
中的数据?
答案 0 :(得分:2)
请注意,例如,如果$_SESSION["username"]
的值为John
,则您的echo
将生成此结果:
document.getElementById('db1').value = John;
但John应该是一个字符串,应该用引号括起来,否则JavaScript会将它理解为变量名(该值可能是undefined
)。
答案 1 :(得分:0)
作为Havenard mentioned,此行缺少Javascript单引号以正确表示字符串变量:
echo "document.getElementById(\'db1\').value ='".$_SESSION["username"];."';";
但是,如果你能提供帮助,你真的不应该用PHP打印JS。虽然iatboy's answer回答最终无法解决您的错误,但这是一种 更干净的做事方式。
?>
<script type=text/javascript>;
var hidden = false;
function actiondb1() {
if(!hidden) {
document.getElementById('clickdb1').style.visibility = 'hidden';
document.getElementById('db1').style.visibility = 'visible';
document.getElementById('db1').disabled = false;
document.getElementById('db1').value ='<?php echo $_SESSION["username"];?>';
}
}
</script>;
<?php
答案 2 :(得分:0)
您是否在此页面中开始了会话?如果您没有,请使用以下代码开始会话。
session_start();
然后将代码更改为
echo "<script type=text/javascript>";
echo "var hidden = false;\n";
echo "function actiondb1() {\n";
echo "alert('".$_SESSION['username']."')\n"; //test code
echo "if(!hidden) {\n";
echo "document.getElementById('clickdb1').style.visibility = 'hidden';\n";
echo "document.getElementById('db1').style.visibility = 'visible';\n";
echo "document.getElementById('db1').disabled = false;\n";
echo "document.getElementById('db1').value ='".$_SESSION["username"]."';\n";
echo "}\n";
echo "}\n";
echo "</script>";
没关系。