1

我正在尝试将PHP arrayand$_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>'

?>
4

2 回答 2

4

假设您的变量$_POST['username']$_POST['password']分别是foobar,您的 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']); ?>"
于 2013-11-03T21:59:44.017 回答
1

您需要添加引号:

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

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

于 2013-11-03T21:58:42.987 回答