簡體   English   中英

單擊mailto:或tel:鏈接時觸發INSERT查詢

[英]Trigger an INSERT query when mailto: or tel: links are clicked

我有一個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函數之類的東西將是解決方案,但是我敢肯定,如果不離開頁面,那是不可能的。

任何幫助表示贊賞。

您可以使用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` ...");

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM