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

问题描述:

我知道这是一个关于堆栈溢出的常见问题,但我无法找到PHP代码刚刚位于同一文件中的JS脚本之上的场景。我猜ajax POST/GET在这种情况下不会做这个工作吗?将jQuery变量传递给PHP在同一页上?

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

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

什么是你的代码的目的是什么? –

+2

我责备Frontpage。不是每个人都可以建立一个网站,也不应该每个人 –

+0

@Rob W我需要使用Timthumb显示100%范围的图像,宽度:100%不会完成这项工作,因为图像必须裁剪。 – Wordpressor

不得不使用POST/GET到JS变量发送到PHP,因为PHP是由服务器处理和JS是由客户端处理。

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

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

我会使用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> 

我不认为有什么办法,因为JavaScript在本地计算机上后运行 PHP已经被执行,并已返回的HTML/CSS/JS给你浏览器。

我最近做的是将一个变量值传递给由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");