从display:block触发PHP进程

时间:2012-04-03 11:49:35

标签: php jquery html css ajax

我正在尝试在新闻档案系统中实施点击计数器。

文章以灯箱样式的jQuery插件显示。这意味着所有文章都加载了页面的其余部分,但设置为display:hidden,直到相关条目被点击为止。

所以,我不能让PHP增加简单地嵌入页面的计数器,并且在搜索中找到触发计数器的东西,所有我能想到的是这个改变显示:block。

我对任何建议持开放态度,虽然我对简单的jQuery更有经验,但我可能需要预感AJAX吗?

提前感谢任何人提供的帮助,如果有任何其他信息有用,请告诉我。

很抱歉,但我目前工作的限制意味着我只能使用IE6。所以我无法评论任何人的答案......这是我认为我可以回复的唯一方式。

响应:

感谢大家的快速回复。我不认为我可以使用普通的jQuery,因为系统将在内部网上,并且需要记录整个网络的访问总数,因此我认为cookie不够。

我将尝试布拉德利建议的load()函数 - 比我想象的要简单得多......现在感觉有点傻。

将更新我如何上场:)

更新

我正在尝试实现load()函数,但没有成功。缺乏萤火虫也会因调试而受阻。

任何人都可以看到此代码可能出现的问题:

<script type="text/javascript">
$('#<?php echo $row->articleid; ?>link').click(function() {
    alert("some encouraging text<?php echo $row->articleid; ?>");
    $('#<?php echo trim($row->articleid); ?>target').load("/hitcount.php?articleid=<?php echo $row->articleid; ?>");
});
</script>

<div id="<?php echo trim($row->articleid); ?>link">Click2</div><br />
<div id="<?php echo trim($row->articleid); ?>target"></div>

令人尴尬的更新 ......所有错误的是文件路径。

3 个答案:

答案 0 :(得分:2)

只是一个简单的点击计数器?没有关于用户信息的反馈?

$('#result').load('ajax/counter.php');

编辑

$('#somediv').click(function() {
    $('#result').load('ajax/counter.php');
});

答案 1 :(得分:0)

你真的不需要Ajax,只是一个javascript变量,它会在你放在每个html输入/下拉/等上的任何onchange事件上递增...然后onsubmit,传递那个javascript变量。

答案 2 :(得分:0)

是的,ajax会帮助你。您可以绑定到任何导航项上的click事件,将文章切换为块显示,并将其分配给点击计数器脚本。

<a href='#article-1' class='display-article'>display article 1</a>
<a href='#article-2' class='display-article'>display article 2</a>

<div id='article-1' style='display:none;'>article 1</div>
<div id='article-2' style='display:none;'>article 2</div>

<script>
$(function() {
  $('a.display-article').on('click', function(event) {
    var article_id = $(this).attr('href');
    $(article_id).show(); // show the actual article
    // and send the ajax request to the processor
    $.get('/scripts/track-click.php', { article_id: article_id }, function(data) {
      alert('article tracking complete!'
    });
  });
});