2011-06-30 82 views
-1

我想要做的是這樣的事情:jQuery附加PHP代碼

我有這個javascript函數,通過調用PHP函數附加一些內容。

<script> 
function example(variable) { 
    $('#div').append("<?php someFunctionPhp('"+variable+"'); ?>"); 
} 
</script> 

裏面的PHP函數,我有類似:

function someFunctionPhp($variable){ 

    switch ($variable) { 
    case 'Y' : 
     echo 'Year'; break; 

    case 'M' : 
     echo 'Month'; break; 

    case 'D' : 
     echo 'Day'; break; 
    } 

} 

假設我打個電話爲example('M'),我已經測試和功能someFunctionPhp確實接收M作爲值參數(如果我只是echo $variable裏面的函數,它顯示的是M),問題是:它沒有輸入case 'M'的情況。它不承認通過JS變量傳遞的M等於。

如果我改變在JS函數的代碼行:

$('#div').append("<?php someFunctionPhp('M'); ?>"); 

它的工作原理...

一些暗示?

回答

11

php是執行服務器端和生成 JavaScript代碼,這是執行客戶端。您應該簡單地實現你的函數在JavaScript:

$('#div').append(function(dateSpec) { 
    switch (dateSpec) { 
    case 'Y' : 
     return 'Year'; 
    case 'M' : 
     return 'Month'; 
    case 'D' : 
     return 'Day'; 
    } 
}(variable)); 
+0

嗯,我明白......事情是:它的工作方式我做到了.. PHP函數不接收參數M,但它不在案件情況下確定等同。這就是問題 – Rafael

+2

@Rafael它確實起作用,因爲'someFunctionPhp'立即用文字參數''「+ variable +」''調用。由於存在這種(奇怪)值的情況,它什麼也不做。除了XHR請求(和類似的調用)之外,沒有辦法從JavaScript調用php函數。 – phihag

+0

勘誤表:由於這個(奇怪的)值有**沒有**的情況,... – phihag