繁体   English   中英

单击按钮时将变量从 php 传递到 javascript

[英]Passing a variable from php to javascript on button click

您好我正在尝试将按钮单击时的变量从 php function 传递到 javascript。output 由于某种原因未定义,但在 php function 变量确实包含数据。 知道为什么会这样吗?

PHP:

    add_filter( 'page_row_actions', 'create_pdf_row_actions', 10, 2 );
function create_pdf_row_actions( $actions, WP_Post $post ) {
    if ( $post->post_type != 'item' ) {
        return $actions;
    }

   # $actions['create-pdf'] = "<a href='#?id=".$post->ID."'  >Create PDF</a>";
    $actions['create-pdf'] = "<a href='#?id=".$post->ID."'  >Create PDF".$post->ID."</a>";
    return $actions;
}

Javascript:

  jQuery(document).ready(function($){
    $('.create-pdf').on('click', function () {
        alert("button"+ $(this).data("id"));
    }); 
  });
    

从这段代码假设,你可以尝试:

使用<?php?>标签在 jQuery 内调用 PHP function。 由于$actions['create-pdf']在数组中,使用print_r到 output 变量,或者如果你有多个键值对,则使用foreach loop

jQuery 的.data()访问元素的dataset ,但链接中的id似乎位于href属性的 URL 片段中。

你有两个选择...

  1. 将适当的data-id属性添加到您的链接

    $actions['create-pdf'] = sprintf( '<a href="#?id=%1$s" data-id="%1$s">Create PDF%1$s</a>', htmlspecialchars($post->ID) );
     $(".create-pdf").on("click", "a[data-id]", function(e) { e.preventDefault(); alert(`button${$(this).data("id")}`); });
  2. 或者,从 URL 片段中的参数中提取id

     $(".create-pdf").on("click", "a[href]", function(e) { e.preventDefault(); const url = new URL(this.href); const params = new URLSearchParams(url.hash.slice(1)); alert(`button${params.get("id")}`); });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM