将jQuery变量传递给PHP在同一页上?
问题描述:
我知道这是一个关于堆栈溢出的常见问题,但我无法找到PHP代码刚刚位于同一文件中的JS脚本之上的场景。我猜ajax POST/GET在这种情况下不会做这个工作吗?将jQuery变量传递给PHP在同一页上?
(...)
var ww = $(window).width();
</script>
<?php $ww = [data here] ?>
答
您将不得不使用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");
什么是你的代码的目的是什么? –
我责备Frontpage。不是每个人都可以建立一个网站,也不应该每个人 –
@Rob W我需要使用Timthumb显示100%范围的图像,宽度:100%不会完成这项工作,因为图像必须裁剪。 – Wordpressor