在同一页面上将jQuery变量传递给PHP?

时间:2011-10-06 21:18:42

标签: javascript php jquery variables

我知道这是Stack Overflow上的一个常见问题,但我找不到PHP代码在同一文件中的JS脚本之上的情况。我想ajax POST / GET在这种情况下不会做这个工作吗?

(...)
var ww = $(window).width();
   </script>

<?php $ww = [data here] ?>

5 个答案:

答案 0 :(得分:6)

必须使用POST / GET将JS变量发送给PHP,因为PHP由服务器处理,JS由客户端处理。

我知道这不是你想听到的。

答案 1 :(得分:3)

这是错误的做法。 PHP都是服务器端解析/评估的。之后,用户的浏览器会解析/评估javascript。即使JS出现在文件中的PHP之前,在将任何内容传递给浏览器之前,PHP仍然在服务器端进行评估。如果您需要将客户端值传递回服务器,则可以使用AJAX。您可以再次在服务器端做出决策,并在响应中触发JavaScript根据PHP做出的决定采取某些操作,但您无法在单个文件中混合/匹配客户端/服务器操作,如此

答案 2 :(得分:2)

我认为没有办法,因为javascript在您的本地计算机上运行 AFTER PHP已执行并已将HTML / CSS / JS返回给您的浏览器。

答案 3 :(得分:1)

我会使用AJAX将我需要的内容传递给要处理的服务器,然后根据响应,使用Javascript,进行必要的调整。例如:

***PHP File***
<?php
$ww = $_POST['data'];
$result = doSomethingWithVariable($ww);
echo $result;

***HTML File***
<script>
...
var ww = $(window).width();
$.ajax({
    url: 'phpfile.php',
    type: 'POST',
    data: { data : ww },
    success: function (result) {
        doSomethingWithResult(result);
    }
});
</script> 

答案 4 :(得分:1)

我最近做的是将变量值传递给由php动态生成的元素的属性。然后使用jquery的get attr()函数来获取值。工作得很完美!

PHP部分:

foreach ((array)$photos['photos']['photo'] as $photo) {
$Maxcount++;
}

foreach ((array)$photos['photos']['photo'] as $photo) { 
echo "<img imgID='$IDcount' Maxcount='$Maxcount'

jQuery的:

 var maxCount= $(".imageView").attr("maxCount");