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

Passing jQuery variable to PHP on the same page?

本文关键字:jQuery 变量 PHP 一页      更新时间:2023-09-26

我知道这是Stack Overflow上经常出现的问题,但我找不到PHP代码在同一文件中刚好高于JS脚本的场景。我想ajax POST/GET不会在这种情况下做的工作?

(...)
var ww = $(window).width();
   </script>
<?php $ww = [data here] ?>

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

我知道这不是你想听的。

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

我不认为有任何方法,因为javascript在你的本地机器上运行 PHP已经执行并返回HTML/CSS/JS到你的浏览器

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

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

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");