通过 ajax 方法 GET 将 google 标签管理器结果发送到 php 页面

send google tag manager results to php page via ajax method GET

我在我的网站上得到了一些变量,我将它们推送到 GTM 它们工作完美,现在我需要从 gtm 获取变量结果并通过 ajax 将其发送到 php 页面,然后我会用它把结果发到电子邮件中。

<script>
  $(document).ready( function() {
  var msg = google_tag_manager["GTM-xxxxx"].dataLayer.get('pageName');
  var msg1 = google_tag_manager["GTM-xx"].dataLayer.get('MembershipLvl');
  var msg2 = google_tag_manager["GTM-xx"].dataLayer.get('CountryRes');
  var msg3 = google_tag_manager["GTM-xxxx"].dataLayer.get('pageLanguage');
  var getall = [msg, msg1, msg2, msg3,];
//  var me = 'just seend';    this do work
   console.log(getall);
  $.ajax({
   type: "GET",
    url: "url.cart.php", // some php
    data:{info: getall},
     datatype: 'html',
    success: function(data) {}

}); });

这是我的 php

 <?php

/* *
*/ send_mail();

函数send_mail(){ 如果($_GET["info"]){

    $mail =  $_GET["info"];

    $header ="From: no-reply@test.com" . "\r\n";
    $for    = 'end@emailadaress.com';
    $header .= "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $title  = 'Mailing list Newsletter';
    $message = '<html><body>';
    $message .= '<br/> <p>tou got email from</p><br/>';
    $message .= '<table rules="all" style="border-color: #666;" cellpadding="2">';
    $message .= "<tr><td><strong>Email:</strong> </td><td>" . strip_tags($mail)."</td></tr>";
    $message .= "</table>";
    $message .= "</body></html>";

    if(mail($for, $title, $message, $header)){
                    die();
    }else{
        //echo "false";
    }

}else{
    echo "false";
}

}

?>

问题是我没有收到发送的 GTM 变量,我确实在控制台日志中看到了它们,如果我更改像 var = test 这样的变量,我确实收到了,但我就是无法收到发送的 GTM 变量

所以问题是 $_GET["info"] 包含一个 strip_tags 无法处理的数组。如果您查看呼叫的响应,它应该有一个 PHP 错误。沿线某处: Warning: strip_tags() expects parameter 1 to be string, array given.如果你想从数组中获取值,你可以构建一个循环或引用特定的索引。
循环

foreach ($mail as $gtm) {
    $message .= $gtm;
}

索引

$message .= $mail[0] // google_tag_manager["GTM-xxxxx"].dataLayer.get('pageName');
$message .= $mail[1] // google_tag_manager["GTM-xx"].dataLayer.get('MembershipLvl');

等...

PHP strip tags
Foreach loop
How to view a ajax call in chrome