仅在<a> tag has been clicked elsewhere</a>时运行PHP函数

时间:2013-08-09 14:00:04

标签: php

我在教自己PHP。我有一个基于PHP的CMS网站,人们可以在页面上向上或向下投票。按钮右侧是一个计数器,按下向上箭头时向上递增,按下向下箭头时向下递增。

我想在显示最后一次投票的时间和日期的按钮旁边添加一个时间戳。如果从未在特定内容上按下投票按钮,则不显示任何日期。投票按钮的“新鲜度”功能,如果你愿意的话。

投票按钮和计数器包含在表格中,如下所示:

<table class="rating-table" cellspacing="0" cellpadding="0" border="0">
 <tr>
  <td><?php echo Kohana::lang('ui_main.credibility');?>:</td>
  <td><a href="javascript:rating('<?php echo $incident_id; ?>','add','original','oloader_<?php echo $incident_id; ?>')"><img id="oup_<?php echo $incident_id; ?>" src="<?php echo url::file_loc('img'); ?>media/img/up.png" alt="UP" title="UP" border="0" /></a></td>
  <td><a href="javascript:rating('<?php echo $incident_id; ?>','subtract','original')"><img id="odown_<?php echo $incident_id; ?>" src="<?php echo url::file_loc('img'); ?>media/img/down.png" alt="DOWN" title="DOWN" border="0" /></a></td>
  <td><a href="" class="rating_value" id="orating_<?php echo $incident_id; ?>"><?php echo $incident_rating; ?></a></td>
  <td><a href="" id="oloader_<?php echo $incident_id; ?>" class="rating_loading" ></a></td>

            <td class="vote_date">

                    Last voted at: 
                    <?php
                    $date = date_create();
                    echo date_format($date, 'Y-m-d H:i:s');
                    ?> 
            </td>

最后一个<td>元素只是我摆弄 - 我有占位符和时间格式。我只需要设置为仅在按下向上或向下投票按钮之一时显示,而不仅仅是当页面像现在一样加载时。

如何将日期功能的输出“链接”到按钮点击而不仅仅是页面加载?我知道这可能是用JavaScript完成的,但是因为我现在正在学习PHP,所以我想在PHP中尝试这个。

1 个答案:

答案 0 :(得分:3)

PHP不像Javascript在它到达用户浏览器之前运行,换句话说就是在服务器上执行。因此,用户无法自行响应网站上的互动。

选项1:将一个OnClick()事件添加到锚定链接以执行JS函数并在JS中输出时间。

选项2:在链接上使用JS事件或创建在按钮单击时执行的JS或jQuery函数。然后使用AJAX调用服务器来执行PHP函数以获取当前时间和日期。

如果您决定在PHP中使用选项2是最好的选择,并且jQuery库使得使用AJAX函数非常容易。但是在JS或jQuery中这样做最容易。