2014-02-06 78 views
0

目的:將html隱藏的輸入變量傳遞給javascript函數。Wordpress,PHP,Javascript,如何獲得js函數內的變量?

工作在一個WordPress插件,並與JavaScript卡住了。

這裏是隱藏的輸入我想獲得,這是variable_product_id。這在用戶動態選擇下拉選項時設置。

<form class="hello"> 
    <input type="hidden" name="variation_id" value=""> 
</form> 

外窗體類的招呼,有插件功能在下面,我試圖獲取和設置「variation_id」內「wp.CheckoutButton.apply」右PRODUCT_ID後。

if(!is_user_logged_in()) 
{      
    echo "<script type=\"text/javascript\" >  

      var temp = document.getElementsByName('variation_id'); 

     //<![CDATA[ 
     wp.CheckoutButton.apply({ 
      BUY_BUTTON_LINK_URL:\"www.website.com/?p=42&product_id=\"+temp, 
     \"\":\"\" }); 
     //]]> 
     </script>"; 
} 

「wp.CheckoutButton.apply」打印屏幕上的按鈕,將經過的product_id,我路過。 它一直在woocommerce中使用可變產品選項,對於變量產品,當用戶更改值(下拉輸入)時,我必須獲取選定的hidden variation_id。

我可以使用document.getElementsByName('variation_id');嗎? 如果是這樣,我怎麼能通過「wp.CheckoutButton.apply」函數中的'variation_id'?

「+ temp」內應用函數合法嗎?

回答

2

這可能重複:

php variable into javascript

有時候,需要在js文件/ js代碼喜歡的網站的基本URL的一些數據。在這種情況下,最好的做法是在header html標籤中創建一個JS變量。在你的標題標籤,創建一個變量,象下面這樣:

<script> 
    var baseUrl = <?php echo get_site_url(); //if get_site_url echos the result itself, then no need to use echo ?> 
</script> 

現在,在你所有的JS文件和內聯JS代碼,你都會有這樣的變量,你可以使用它。簡單地說,它是一個全球性的js變量(我剛剛編譯完成,不知道js是否有:P)

現在,您可以在js文件和js代碼的每個位置使用該變量。

Notge:請在header標籤的頂部或某些位置創建baseUrl變量,以免在它之前包含js文件。

**編輯:**

我們瞭解您的表單元素得到variation_id,你的元素添加ID如下:使用jQuery

<input type="text" name="variation_id" id="variation_id" value="" /> 

在JS:

var variation_id = $("#variation_id").val(); 

和wp.CheckoutButton.apply,而不是temp,請使用variation_id。我認爲是正確的,但嘗試一下。

希望這會有所幫助。

+0

感謝您的答案,但我想在這裏實現的是獲取HTML格式輸入到js函數的var值。對於get_site_url()是表單wordpress函數,product_id =? < - 這是variation_id應該在的位置。我會澄清這個問題。 – handicop

+1

檢查更新後的答案。我有點着急,所以錯過了一些你的問題:P。對不起。 –

+0

那麼我可以做「BUY_BUTTON_LINK_URL:」www.website.com/?p=42&product_id=\"+variation_id「< - 像這樣嗎?它在這裏附加字符串,但似乎不起作用。提前致謝。 – handicop