如何将PHP值传递给javascript?

时间:2011-06-29 16:45:03

标签: php javascript jquery

这是代码??

发布代码:

$.post('get.php',{selected:"aaaa"},function(return){alert(return);});

当我使用

检查“选定”值的值时
<?php

$r=$_POST['selected'];
echo $r;

?>

正确显示值“aaaa”..

此代码工作正常......

<?php 

$r=$_POST['selected'];
?>
var answer="<?php echo "welcome" ?>";

当我们回显值“welcome”时,它存储在变量answer.and我可以打印...

但是当我这样说的时候......

<?php 

$r=$_POST['selected'];
?>
var answer="<?php echo $r ?>";

空值存储在答案中......并且没有任何内容显示....

是否在“”里面指定$ r是不对的...如何指定......

2 个答案:

答案 0 :(得分:1)

$_POST['selected']一开始可能是空的。确保您为selected发送非空值,并且您正在使用POST。 (最简单的方法是查看浏览器的开发人员工具以获取初始请求。)

请注意,直接将用户输入输出到页面会引入Cross-Site Scripting Vulnerability:输入"; alert("evil");可以显示该信息。假设您使用的是UTF-8,您可以写:

var answer = <?php echo json_encode($_POST['selected']); ?>

此外,通常有更好的方法将数据从php传输到JavaScript,包括XHR请求/ JSON或data-* attributes

答案 1 :(得分:1)

假设您显示的PHP代码位于get.php,则不会在同一文件中使用javascript。如果您想在页面中的javascript变量中获取返回值,则需要使用第一个php片段并使用.post函数中的返回值:

原始页面中

javascript:

$.post('get.php',{selected:"aaaa"},function(data){
  var answer = data;
});

<强> get.php

<?php
  $r=$_POST['selected'];
  echo $r;
?>