2011-10-06 61 views
-2

我知道這是一個關於堆棧溢出的常見問題,但我無法找到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

回答

6

不得不使用POST/GET到JS變量發送到PHP,因爲PHP是由服務器處理和JS是由客戶端處理。

我知道這不是你想聽到的。

3

這是錯誤的方法。 PHP是所有解析/評估的服務器端。之後,用戶的瀏覽器開始解析/評估JavaScript。即使JS出現在你的文件中的PHP之前,PHP仍然在評估服務器端之前將任何內容傳遞給瀏覽器。如果您需要將客戶端值傳遞迴服務器,那麼您可以使用AJAX。您可以再次在服務器端做出決定,並在響應中觸發JavaScript根據PHP做出的決定採取一些行動,但是您不會在這樣的單個文件中混合/匹配客戶端/服務器操作。

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> 
2

我不認爲有什麼辦法,因爲JavaScript在本地計算機上後運行 PHP已經被執行,並已返回的HTML/CSS/JS給你瀏覽器。

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