2016-11-17 244 views
0

我有一個名爲$ path的變量。我想將這個變量從PHP傳遞給一個javascript函數。將PHP變量傳遞給Javascript函數

<button onclick='myFunctionContact(\"" . $row1['id'] . "\")'> 
    <img border='0' alt='Contacts' src='".$imgpth."peoplesmall.png'> 
</button> 
<script> 
function myFunctionContact(id) { 
    window.open('!!!$path should go here!!!'+id, '', 'toolbar=no,scrollbars=yes,resizable=yes,top=200,left=500,width=400,height=400'); 
} 
</script> 

如何獲取路徑中的URL,以便在所需的位置顯示函數內部的路徑?

我試圖將變量打印到一個JavaScript變量,然後將該變量放入函數中,但當我這樣做時彈出窗口不再有效。

function myFunctionContact(id) { 
    var test1 = <?php echo $path; ?>; 
    window.open(test1 +id, '', 'toolbar=no,scrollbars=yes,resizable=yes,top=200,left=500,width=400,height=400'); 
} 

我知道我做錯了,但我不知道如何。任何建議將不勝感激。

+1

你打印的是;在回聲結束? –

+0

這是一個錯字。我會編輯修復它。 –

+0

可能的重複[如何將變量和數據從PHP傳遞到JavaScript?](http://stackoverflow.com/questions/23740548/how-to-pass-variables-and-data-from-php-to-javascript) – giorgio

回答

2

我認爲這個問題是你如何回聲路徑:

相反的:

var test1 = <?php echo $path; ?> 

我覺得應該是

var test1 = <?php echo '"'.$path.'";'; ?> 
+0

有沒有理由它與var myValue = <?php echo json_encode($ path); ?>; ? –

+1

json_encode返回一個帶有「(雙引號)」字符的字符串,這就是你的代碼中缺少的東西。 –

0

您可以隨時使用隱藏的輸入字段,並將其值設置爲任何您需要在JS代碼中使用的值,然後在您的JS中獲取該值,或者嘗試ajax調用以獲取所需的值。

+1

使用隱藏的輸入字段是非常糟糕的做法。它雖然工作。 – giorgio

0

json_encode()解決了這一問題。

var myValue = <?php echo json_encode($path); ?>; 
+1

Json並不意味着要將值輸入到一個javascript變量中。'json!== var' – giorgio

0

該路徑需要帶引號的字符串。回顯字符串的最終結果本身必須包含引號。

假設$path是一個字符串,window.open期望引用字符串作爲參數。

function myFunctionContact(id) { 
    window.open(' . $path . ' + id, '', 'toolbar=no,scrollbars=yes,resizable=yes,top=200,left=500,width=400,height=400'); 
} 
</script>