【问题标题】:Wordpress, PHP, Javascript, how to get variable within a js function?Wordpress,PHP,Javascript,如何在 js 函数中获取变量?
【发布时间】:2014-03-03 00:46:33
【问题描述】:

目的:将html隐藏的输入变量传递给javascript函数。

正在开发一个 wordpress 插件,却被 javascript 卡住了。

这是我想要获取的隐藏输入,即 variable_product_id。当用户动态选择下拉选项时会设置此项。

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

在表单类hello之外,下面有插件功能,我试图在“wp.CheckoutButton.apply”中的product_id之后获取并设置“variation_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 中使用无可变产品选项,对于可变产品,当用户更改值(下拉输入)时,我必须获取选定的隐藏变体 ID。

我可以使用document.getElementsByName('variation_id'); 吗? 如果是这样,我如何在“wp.CheckoutButton.apply”函数中传递“variation_id”?

apply函数中的“+temp”合法吗?

【问题讨论】:

    标签: javascript php wordpress woocommerce


    【解决方案1】:

    为此,您需要创建一个本地化脚本,以帮助在 js 文件或 js 函数中调用站点 url。
    http://codex.wordpress.org/Function_Reference/wp_localize_script

    【讨论】:

      【解决方案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 添加到您的元素中,如下所示:

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

      在js中使用jquery:

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

      在 wp.CheckoutButton.apply 中,使用variation_id 而不是temp。我认为这是正确的,但请尝试一下。

      希望这会有所帮助。

      【讨论】:

      • 感谢您的回答,但我在这里想要实现的是在 html 表单输入中获取 var 值到 js 函数。对于 get_site_url() 是 wordpress 形式的函数,product_id=?
      • 检查更新的答案。我有点着急,所以错过了一点你的问题:P。很抱歉。
      • 那么我可以这样做“BUY_BUTTON_LINK_URL:\"www.website.com/?p=42&product_id=\"+variation_id"
      猜你喜欢
      • 2019-04-04
      • 2012-04-05
      • 2013-12-11
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多