我知道这是Stack Overflow上的一个常见问题,但我找不到PHP代码在同一文件中的JS脚本之上的情况。我想ajax POST / GET在这种情况下不会做这个工作吗?
(...)
var ww = $(window).width();
</script>
<?php $ww = [data here] ?>
答案 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");