尝试将 PHP $_POST 变量保存到 javascript 中,但它不起作用


Trying to save PHP $_POST variable into javascript but it does not work

我正在尝试将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']分别是foobar,你的JavaScript代码可能是这样生成的:

var username = foo
var password = bar

您需要在 JavaScript 的值周围添加引号,将它们解析为字符串,否则它会认为您正在为它们分配foobar变量。

此外,您应该使用 addslashes 来转义字符串中可能的"字符,并防止它破坏您的 JavaScript 代码。

var username = "<?php echo addslashes($_POST['username']); ?>"
var password = "<?php echo addslashes($_POST['password']); ?>"

您需要添加引号:

var username = "<?php echo $_POST['username']; ?>"

否则,JavaScript 会将$_POST[]值解释为未定义的变量。