2014-02-06 108 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