传递给php变量时,Javascript变量不能作为int返回

时间:2014-12-07 16:16:53

标签: javascript php variables int

有人知道请帮忙!

<script type="text/javascript" language="javascript">

var a = 3;

document.write("<?php funct1('"+a+"') ?>");

</script>

<?php 
function funct1($param){
$param = preg_replace('/\s+/', ' ', $param);
echo intval($param);
}
?>

我曾经以同样的方式将js变量传递给php,它可以工作,但是我想要那个变量:(来自a的$ param)将它的值作为整数返回。每当我使用(int)$ param或intval($ param)然后它返回0.尝试preg_replace替换空格,它仍然无法解决。

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

您在JavaScript中定义了变量,并希望在PHP中使用它来传递回JavaScript document.write

这是错的。它没有那种方式。

如果需要将数据从JavaScript传递到PHP,可以通过ajax连接到php。或者,如果您想将数据从PHP传递到JavaScript,您可以

<?php $data = 'hello world' ?>
<script>
var data_from_php = <?php echo json_encode($data) ?>;
alert(data_from_php);
</script>

PHP解释器完成执行后,您将获得:

<script>
var data_from_php = "hello world";
alert(data_from_php);
</script>

我无法用两个词解释ajax你可以阅读这个答案:https://stackoverflow.com/a/6009208/1946607

答案 1 :(得分:0)

你不能像你的代码那样使用javascript和php。

当客户端请求页面时;在此之后解释的第一个PHP代码,解释的代码(html文本)发送客户端浏览器与其他HTML和JavaScript文本。

你必须使用ajax将javascript值发送到另一个php文件。

最诚挚的问候。

答案 2 :(得分:0)

你根本无法对PHP中的Javascript变量做任何事情。只需尝试添加1并返回 结果,你将得到0.即使你返回$param,你会看到有:(按Ctrl + U)

var a = 3;

document.write(""+a+"");

返回值本身并且没有PHP代码发生!您需要通过ajax

致电