javascript - 在http请求发生之前调用表单提交的JS函数

标签 javascript php google-analytics

当用户提交(POST)表单时,我想将选定的复选框值传递给 Google Analytics(分析),以便在 Google Analytics(分析)仪表板中作为自定义指标进行跟踪。

用户将他们的选择提交到服务器,服务器将首先调用 JS sendDataToGA(selectedOption) { 函数将数据传递给 GA,然后 POST 将运行。

我该如何实现这个目标?看来 POST 正在触发,并且没有调用 JS 函数。

PHP/HTML:

    <?php if (!empty($_POST)): ?>
        Selection: <?php echo htmlspecialchars($_POST["option"]); ?><br>

    <?php else: ?>
        <!-- On form submit, fire a custom GA function to capture the selected option -->
        <form action=<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?> method="post" > 
          <input type="checkbox" name="option" value="option 1">Option 1<br>
          <input type="checkbox" name="option" value="option 2">Option 2<br>
          <input type="submit" value="Submit" id="submitBtn" onclick="sendDataToGA(selectedOption);">
        </form>
    <?php endif; ?>

JS:

function sendDataToGA(selectedCheckboxValue) {
    ga('send', 'event', 'category', 'action', {
        'metric1': selectedCheckboxValue,
            'hitCallback': function () {
            console.log("data has been sent to Google Analytics");
        }
    });
}

最佳答案

如果您为表单指定 id 属性,则可以使用 jQuery 执行以下操作

$("#myForm").submit(function () {
    ga(...);
});

或者不使用 jQuery:

<form action=<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?> onsubmit="sendDataToGA(selectedOption)" method="post"> 
    ...
</form>

关于javascript - 在http请求发生之前调用表单提交的JS函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30602132/

相关文章:

google-analytics - 如何捕获访问者是否来自 google adwords 点击

javascript - 如何知道是否有Ajax Request和ajax Success

javascript - 在 Firefox 中出现 "undeclared character encoding"错误

PHP mysql fetch 不返回值

php - Laravel利用ValidationException

php - 我可以让某些用户查看我的分析数据吗?

google-analytics - 如何设置自动计算 : (goal number/new visitors) 的方法

javascript - 搜索/过滤后的 Yii2 点击事件

javascript - 如何在d3 v4中的scaleTime中使用rangeRound?

php - 将实时 XML 提要导入 MySQL 数据库?