如何使用JavaScript或PHP传回一个唯一的ID?

时间:2014-02-13 21:40:29

标签: javascript php ajax

当用户点击我们的“请求信息”按钮以更好地跟踪访问者时,我需要传回一个唯一ID来代替“INSERT + ORDER + ID”。有谁知道我怎么能做到这一点?非常感谢任何帮助,谢谢!

<script type="text/javascript"> 
var _qevents = _qevents || [];

(function() {
var elem = document.createElement('script');
elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") +
".quantserve.com/quant.js";

elem.async = true;
elem.type = "text/javascript";
var scpt = document.getElementsByTagName('script')[0];
scpt.parentNode.insertBefore(elem, scpt);
})();

_qevents.push(
{qacct:"p-yeADJca0S9FXE",labels:"_fp.event.Request Information Confirmation     
Page",orderid:"INSERT+ORDER+ID"}
);
</script>
<noscript>
<img src="//pixel.quantserve.com/pixel
/p-yeADJca0S9FXE.gif?labels=_fp.event.Request+Information+Confirmation+Page&
orderid=INSERT+ORDER+ID" style="display: none;" border="0" height="1" width="1" alt="Quantcast"/>
</noscript>

2 个答案:

答案 0 :(得分:2)

假设您的意思是随机唯一ID, 对于javascript事件跟踪,这应该有效:

// function to generate random id in js
function getRandomId() {
    var id = +new Date() + Math.random();
    return id.toString().replace('.','');
}
var btnReqInfo = document.getElementById('request_information_btn');
// bind the click on button
btnReqInfo.addEventListener('click', function() {
    // track the event
    _qevents.push({ qacct:"p-yeADJca0S9FXE", labels: "_fp.event.Request Information ConfirmationPage",orderid: getRandomId() });
, false);

关于noscript标签中的内容,你当然不能使用静态html这样做,所以你必须放入模板的上下文(在php文件中),something like this that generates a unique ID然后在它中回显它占位符的位置。

由于我有结构化和清理的心情,我冒昧地重构了一些代码,万一你可以用这个替换你的所有脚本(假设你使用普通的js(vanilla)和html 5):

<script> 
    var _qevents = _qevents || [];

    (function() {
      var
        init = function() {
            loadScript();
            bindUi();
        },
        loadScript = function() {
            var elem = document.createElement('script');
            elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js";
            elem.async = true;
            elem.type = "text/javascript";
            var scrpt = document.getElementsByTagName('script')[0];
            scrpt.parentNode.insertBefore(elem, scrpt);
        },
        bindUi = function() {
            var btnReqInfo = document.getElementById('request_information_btn');
            btnReqInfo.addEventListener('click', track.order, false);
        },
        track = {
            order: function() {
                _qevents.push({ qacct:"p-yeADJca0S9FXE", labels: "_fp.event.Request Information ConfirmationPage", orderid: utils.getRandomId() });
            }
        },
        utils = {
            getRandomId : function() {
                 var id = +new Date() + Math.random();
                 return id.toString().replace('.','');
            }
        };
        init();
    })();
</script>

答案 1 :(得分:0)

我建议使用绑定到onclick事件的AJAX调用或.click如果你使用的是JQuery

AJAX调用将触及PHP脚本或调用您用于分析的任何内容。