单击mailto:或tel:链接时触发INSERT查询

时间:2015-06-05 14:19:39

标签: javascript php mobile mysqli

我有一个围绕移动功能设计的php页面,并从搜索条件中加载信息,在页面上收集信息,然后当页面打开时,该信息会自动发送到数据库以记录访问并完美地工作,这是代码:

$mysqli = new mysqli($servername, $username, $password, $dbname);
$stmt = $mysqli->prepare("INSERT INTO `analytics_scans` (`ip_address`, `property_id`, `address`, `town`, `agent_name`, `office`) VALUES (?,?,?,?,?,?)");
$stmt->bind_param('sissss', $_SERVER['REMOTE_ADDR'], $id, $address, $town,     $agent, $office);
$stmt->execute();

在此页面上有3个'按钮/图像'呼叫,邮件和共享我想要做的是将这些事件记录到3个单独的表中,与上面的代码完全相同而不离开页面,我无法重新加载它,因为它将记录进一步的页面访问。 我无法复制显示的那个并指向其他表,因为它是必须记录的点击。

理想情况下,像onClick功能这样的解决方案就是解决方案,但我确信在不离开页面的情况下这是不可能的。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用Ajax(例如使用jQuery)。

示例:

<a href="mailto:xxx@xxx.de" onclick="return javascript:log('mail_clicked');">Write email</a>
<a href="#" onclick="return javascript:log('share_clicked');">Share</a>

在jQuery中:

function log(action) {
    $.get('./log.php?action=' + action);
    return true;
}

在log.php中:

<?php

$db = new MySQLi(...);
if($_GET['action'] == "mail_clicked")
    $db->query("INSERT INTO `mail_clicked` ...");
else if($_GET['action'] == "share_clicked")
    $db->query("INSERT INTO `share_clicked` ...");

?>