【问题标题】:Showing a Wordpress Database custom table row column value from the database on button click单击按钮时显示数据库中的 Wordpress 数据库自定义表行列值
【发布时间】:2019-01-30 04:43:49
【问题描述】:

我在 WordPress 数据库中添加了一个自定义表。除此之外,我还创建了一个短代码,以便能够将其附加到我的 WordPress 网站上的特定页面。表格有两列,IDcoupon_code

自定义表用于存储优惠券代码,我需要能够在按钮的点击事件中显示该表的第一行列值(coupon_code = INSERT NUMBER)。

function coupon_codes() {
 ?>
    <button class="reveal_coupon" onclick="reveal_coupon()">CLICK TO REVEAL 
COUPON CODE</button>
    <div class="coupon"></div>
      <?php
        global $wpdb;
        $result = $wpdb->get_results ( "SELECT * FROM coupon_codes LIMIT 1" 
        );
        foreach ( $result as $print )   {
          echo $print->coupon_code;
        }
}
add_shortcode( 'coupon_codes' , 'coupon_codes' );

我明白,为了实现这一点,我需要将 PHP 代码移动到一个单独的 PHP 文件中,因为此代码仅在服务器端运行,并且只有在单击事件上运行文件才能实现.那部分我明白了。

除非通过单击事件调用,否则我无法显示行值。这就是为什么我认为 JS / jQuery 适用于这种情况,但我无法准确地找出脚本以使其工作。

【问题讨论】:

  • 您能否提供进一步的说明?为什么你认为你需要将你的 PHP 代码移动到一个单独的文件中?这不一定是正确的,您在此处发布的代码看起来是可行的。您“找到了类似的示例,但无法将其展示”...什么您无法“展示”?
  • 此外,在同一个问题中进行多个不同的查询通常不是 Stack Overflow 上的最佳实践 - 如果您提出关于从Wordpress 数据库变成一个单独的问题。
  • 据我所知,PHP 显示在服务器端,因此如果存在该值,它将自动显示在短代码中。这就是为什么我想通过 JS/jQuery 脚本来调用它。我能够获得要在前端显示的值,并且它可以工作,我错过了单击/删除第一行组件以使其工作的显示。
  • 感谢您的提示,esqew,我将把第二部分移到一个单独的问题中。

标签: javascript php mysql wordpress coupon


【解决方案1】:

您似乎对 PHP 和 HTML/JS/CSS 的交互方式存在误解。

如果您在单击按钮之前无法显示行值(我假设您有 &lt;button class="reveal_coupon"... 元素),那么您在这里几乎是在正确的轨道上。假设您的 &lt;div class="coupon"&gt;&lt;/div&gt; 优惠券专门用于保存从您的 PHP 脚本输出的优惠券数据,我将做一些观察:

  • 你在echocoupondiv 之外处理你的数据,所以无论你输出什么都不一定受制于你实现的 CSS 样式和 JS 逻辑对于这个元素。在&lt;div class="coupon"&gt;&lt;/div&gt; 之间移动PHP 代码。
  • 为了实现您想要的功能,您需要添加相关的 JavaScript 和 CSS 样式。最易于维护的方法是将您的 JS 和 CSS 分解为单独的文件,并在新的函数/enqueue 挂钩对中利用 wp_enqueue_scriptwp_enqueue_style 函数在适当的时间在 DOM 中插入对这些文件的引用:

    add_action ( 'wp_enqueue_scripts', 'coupon_enqueue_scripts' );
    function coupon_enqueue_scripts() {
        wp_enqueue_script("coupon", "coupon.js");
    }
    
    add_action ( 'wp_enqueue_styles', 'coupon_enqueue_styles' );
    function coupon_enqueue_styles() {
        wp_enqueue_style("coupon", "coupon.css");
    }
    

    在这些文件中,您需要添加 (a) Javascript 逻辑来实现当前 HTML 输出中引用的 reveal_coupon() 函数,以及 (b) CSS 样式以最初隐藏优惠券代码。

【讨论】:

  • 我能够根据您的建议使其工作,并进行了修改。感谢您的意见,并感谢您,esqew。我已经扩展了查询并在会话结束后删除了该行,可能需要更多的工作来允许删除该行,无论它是否是第一行,但我有我正在寻找的所有部分.谢谢!
猜你喜欢
  • 2022-11-23
  • 1970-01-01
  • 2018-06-14
  • 1970-01-01
  • 2014-09-20
  • 2018-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多