2012-04-03 37 views
0

我正試圖在新聞存檔系統內實現一個計數器。從顯示觸發PHP過程:塊

這些文章以lightbox風格的jQuery插件顯示。這意味着所有文章都加載了頁面的其餘部分,但設置爲display:hidden,直到點擊相關條目。

所以,我不能讓PHP增加簡單嵌入在頁面中的計數器,並且在搜索中找到觸發計數器的東西時,我所能想到的只是此更改顯示:block。

我很樂意提供任何建議,雖然我對簡單的jQuery有更多的經驗,但我有一種預感AJAX可能需要在這裏?

在此先感謝任何人可以提供的幫助,並讓我知道是否有任何其他信息會有用。

對不起,但我目前的工作限制,意味着我只有IE6在我的處置。所以我不能評論任何人的答案......這是我認爲我可以回答的唯一方式。

響應:

感謝大家的快速響應。我不認爲我可以使用普通的jQuery,因爲系統將在Intranet上,並且需要記錄整個網絡的總訪問次數,因此我不認爲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> 

尷尬更新: ......所有的錯是文件路徑。

+0

是啊阿賈克斯是你想要的。但jQuery有強大的Ajax支持。 – Bradmage 2012-04-03 11:54:07

+0

布拉德利的想法是要走的路。只需使用'.load()'動作就可以調用腳本來引用文章並顯示它。這樣,您可以根據需要增加計數器的數量。 – MetalFrog 2012-04-03 11:54:19

回答

2

只是一個簡單的計數器?沒有用戶信息的反饋?

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

編輯

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

你並不真正需要的Ajax,只是那個被你放在每個HTML輸入/下拉/等等,那麼任何onchange事件增加一個JavaScript變量onsubmit,傳遞那個javascript變量。

+0

如果你想記錄數據,你需要ajax。否則,它只會提供給客戶端。除非你把它存儲在一個cookie中。然後在下次用戶更改頁面時讀取cookie。或者如果用戶更改頁面。 – Bradmage 2012-04-03 11:57:00

+0

這可以很容易地鍛鍊,而不是真的保證。 – 2012-04-03 11:57:25

+0

從我所讀到的,他只記錄一個櫃檯,沒有關於交易的信息,除非我錯過了這部分問題。和往常一樣處理Javascript,即使使用Ajax後,也可以鍛鍊。通過下一個GET環路向我發送信息並不需要太多,而您的控制器將收集不正確的數據。 @OliverMGrech – Churk 2012-04-03 12:01:47

0

是的,阿賈克斯會幫助你在這裏。您可以綁定到任何導航項目上的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!' 
    }); 
    }); 
});