2011-06-22 53 views
10

例如:可以在jQuery腳本中使用PHP嗎?

$(document).ready(function(){ 
    $('.selector').click(function(){ 
     <?php 
     // php code goes here 
     ?> 
    }); 
}); 

這會帶來問題或減慢頁面?這是不好的做法嗎?有什麼重要的,我應該知道這一點?

謝謝!

+0

謝謝你們的PHP腳本AJAX!你們都快!我現在知道了! – hellomello

回答

12

如果您試圖用點擊事件綁定一些PHP代碼,那麼這是不可能的,您嘗試的方式和PHP代碼將立即執行頁面加載而無需等待點擊事件。

如果您試圖使用PHP生成最終的JavaScript或jQuery代碼,那麼這是好的。

+0

謝謝,我認爲這是直截了當的,並得到了重點。謝謝。希望我可以查看所有答案 – hellomello

+0

當我這樣做時出現錯誤。它不再被允許嗎?我只是試圖包含一個基於if語句的行(如果$ _SESSION ['somevar'] == 1) –

3

當然,只要你記住PHP代碼將在頁面發出之前由服務器執行。除此之外,玩得開心。

1

不,它不是。就像你知道在解析PHP頁面後執行JS一樣。

4

PHP在服務器上執行,然後JavaScript將在客戶端上執行。所以你會在這裏做的是使用PHP來生成JavaScript,將成爲函數體。如果這就是你想要做的事情,那麼這樣做沒有問題。

如果你認爲你打算從JavaScript調用一些PHP代碼,那麼你就錯了。您需要將PHP代碼放在單獨的頁面中,並使用ajax請求來獲取結果。

6

它不會減慢頁面; PHP在服務器上運行併發送發送到瀏覽器的文本,就像在任何PHP頁面上一樣。這是不好的做法嗎?我不會說「壞」,但不是很好。它使混亂的代碼 - 在我需要做這樣的事情時,我通常會嘗試打破它,如:

<script> 
    var stuff = <?php print $stuff; ?>; 
    var blah = "<?php print $blah; ?>"; 

    // Do things in JS with stuff and blah here, no more PHP mixed in 
</script> 
+0

不錯...... !!!!!!!!!!!!! – Ehsan

2

PHP是一個「後臺」語言和JavaScript是一種「前端」語言。簡而言之,只要PHP代碼通過了解PHP的Web服務器加載 - 缺點是必須內聯JS,失去緩存能力(有解決方法可以在.js文件中解析php,但不應該真的做這個)。對用戶來說,它只會看起來像JavaScript和HTML。以下是服務器訂單:

  1. 用戶請求頁面。
  2. Apache(或同等版本)注意到這個 是一個php文件。然後它呈現所有 之間的PHP標籤之間的PHP。
  3. Apache將頁面發送給用戶。
  4. 用戶的瀏覽器看到JavaScript 並執行它。

只要確定PHP正在輸出有效的JavaScript。

3

你有更好的選擇,使用運行時您正在處理一個click事件

$(document).ready(function(){ 
    $('.selector').click(function(){ 
     $.ajax({url:"phpfile.php",type:"POST", 
data:"datastring="+value+"&datastring2="othervalue, 

,success:function(data){ 
//get the result from the php file after it's executed on server 
} 

}); 
    }); 
}); 
+0

嘿,這正是我需要的! – pattyd

相關問題