单击事件执行而不单击jquery drupal

时间:2013-05-07 05:28:11

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

<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中编写了这段代码。但是当我访问该页面时,查询执行时不会点击要访问的链接。

任何人都可以帮助我吗?找出解决方案。

2 个答案:

答案 0 :(得分:0)

这是您的php codephp script is a server side script,因此您不会在javascript click event中看到它,因此会executed automatically

对于此,您可以使用ajax来完成此任务。

答案 1 :(得分:0)

当然,因为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>