我正在尝试将PHP array
值和$_POST
值保存到javascript变量中,但它不起作用。
这就是我的做法。
<html>
<script>
var username = <?php echo $_POST['username']; ?>
var password = <?php echo $_POST['password']; ?>
//abc(username, password);
document.write(username+' '+password);// does not work
</script>
<body>
<form method="post">
Username: <input type="text" name="username" /><br />
Password: <input type="password" name="password" /><br />
<input type="submit" value="login" />
</form>
</body>
</html>
我怎样才能做到这一点?
如果我将硬编码变量传递给 JavaScript 函数,那只能工作。让我告诉你怎么做。
<script>
function func(v1, v2){
document.write(v1+' '+v2);// does not work
}
</script>
<?php
$a = 25;
$b = 30;
echo '<script>func('.$a.','.$b.');</script>'
?>
假设你的变量$_POST['username']
和$_POST['password']
分别是foo
和bar
,你的JavaScript代码可能是这样生成的:
var username = foo
var password = bar
您需要在 JavaScript 的值周围添加引号,将它们解析为字符串,否则它会认为您正在为它们分配foo
并bar
变量。
此外,您应该使用 addslashes
来转义字符串中可能的"
字符,并防止它破坏您的 JavaScript 代码。
var username = "<?php echo addslashes($_POST['username']); ?>"
var password = "<?php echo addslashes($_POST['password']); ?>"
您需要添加引号:
var username = "<?php echo $_POST['username']; ?>"
否则,JavaScript 会将$_POST[]
值解释为未定义的变量。