2013-11-03 48 views
1

我試圖將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>' 

?> 
+0

「不起作用」是什麼意思?你需要更清楚的問題,什麼是不工作。 – j08691

+0

在我的問題中增加了一些細節。請立即退房。 –

回答

4

假如你的變量$_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']); ?>" 
+0

不要忘記結尾的分號。 – j08691

+0

JavaScript中的分號是可選的。 –

+0

謝謝@ Guilherme Sehn,它工作。沒有半圓柱,它不能工作。我在最後添加了分號和終止符,並且工作正常。 –

1

您需要添加引號:

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

否則JavaScript的解釋$_POST[]值作爲一個未定義的變量。

+0

謝謝@cristy它的工作.. –

相關問題