【问题标题】:click events executes without clicking in jquery drupal单击事件执行而不单击 jquery drupal
【发布时间】:2013-05-07 05:28:10
【问题描述】:
<script>
jQuery(document).ready(function() {
    jQuery('.visit-website-link a').bind('click', function(e) {

    <?php 
    $visit_count = db_insert('visit_count') 
    ->fields(array(
    'nid' => $nid,
    'uid' => $user->uid,
    ))
    ->execute();
    ?>

    });
});
</script>

我已经在 drupal tpl 中编写了这段代码。但是当我访问该页面时,查询会执行而无需单击要访问的链接。

谁能帮助我?找出解决方案。

【问题讨论】:

  • 您的问题已得到解答,请查看并接受一个。

标签: javascript jquery drupal drupal-7 drupal-views


【解决方案1】:

这是你的php codephp script is a server side script,所以它不会看到你在javascript click event 写的,所以它会executed automatically

为此您可以使用ajax 来完成此任务。

【讨论】:

    【解决方案2】:

    当然,因为 PHP 代码在浏览器查看 JavaScript 之前就已经运行了。您需要的是一个单独的页面,其中包含您的 PHP 代码,然后通过 AJAX 调用它,如下所示。注意:我从您的 PHP 数组中删除了一个尾随逗号。您甚至可以从 PHP 中返回一些内容以显示在成功函数中。

    PHP (query.php):

    <?php 
    
    $visit_count = db_insert('visit_count')
    ->fields(array(
        'nid' => $nid,
        'uid' => $user->uid
    ))
    ->execute();
    
    ?>
    

    HTML/JavaScript:

    <script type="text/javascript">
        jQuery(document).ready(function() {
            jQuery('.visit-website-link a').bind('click', function(e) {
                e.preventDefault();
                $.ajax(
                {
                    url: "query.php",
                    type: "POST",
                    success: function()
                    {
                        console.log('Update complete');
                    }
                });
            });
        });
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-24
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      相关资源
      最近更新 更多