2013-05-07 63 views
0
<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中编写了此代码。但是当我访问该页面时,查询就会执行,而无需点击要访问的链接。点击事件执行时不需要单击jquery drupal

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

+0

你的问题已经回答了,请阅读并接受一个。 – SimonDever 2013-05-15 22:58:17

回答

0

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

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

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>