JavaScript / PHP:获取推荐关键URL

时间:2014-05-03 12:53:34

标签: javascript php ajax

我正在开发一个ajax(本机JavaScript)表单。我无法获取推荐密钥并将其发送到PHP后端。

这个想法是ajax请求将整个URL(带有表单数据)作为字符串发送到PHP引擎。然后,我可以在PHP中分解URL并提取密钥。

这是我到目前为止所做的:

Page url:

http://example.com?ref=gr84r34ijg98g

JS:

// Send the form data with the URL
function getquerystring() {

    var email = document.getElementById('email').value;
    var URL = document.URL;
    qstr    = 'email=' + email + '& URL=' + URL;
    return qstr;
}

然后,在我的PHP中,我可以检索表单数据和url:

   $email = $_POST['email'];
   $url   = $_POST['URL'];

我怎样才能分解URL,因为我只将代码作为字符串结尾?我以为我可以在发送之前在JavaScript中分解URL,尽管我认为用PHP做这部分可​​能更容易。

可能会删除“http://example.com?ref=”的preg_match()之类的内容。虽然不太确定如何做到这一点。

5 个答案:

答案 0 :(得分:1)

是的,您可以在Javascript

中获取ref的值
function getquerystring() {
    var email = document.getElementById('email').value;
    var URL = document.URL;

    var URL_arr = URL.split('ref='); //<-- URL_arr[1] will give ref string

    qstr    = 'email=' + email + '&URL=' + URL;
    return qstr;
}

答案 1 :(得分:0)

function getquerystring() {

    var email = document.getElementById('email').value;
    var URL = document.URL;
    qstr    = '?email=' + email + '& URL=' + URL;
    return qstr;
}

试试这个。

$ email = $ _GET [&#39; email&#39;];    $ url = $ _GET [&#39;网址&#39;];

答案 2 :(得分:0)

在URL之前有一个额外的空格..你应该用encodeURIComponent对它进行编码。更新此行

qstr    = 'email=' + encodeURIComponent(email) + '&URL=' + encodeURIComponent(URL);

在php端

$url = url_decode($_POST['URL']);
$email = url_decode($_POST['email']);

答案 3 :(得分:0)

试试这个:

var query = window.location.search.substring(1).split('&');
var ref = '';
$.each(query, function(i, v) {
    v = v.split('=');
    if (v[0] === 'ref') {
        ref = v[1];
        return false;
    }
});
console.log(ref);

答案 4 :(得分:0)

为什么不在PHP中执行以下操作(将其放在标题中(如果您希望它在所有页面上工作)或在所有包含之后放在index.php的顶部:

<?php
$ref = (isset($_GET['ref']) && strlen($_GET['ref']) > 0) ? trim($_GET['ref']) : null;
//Process what ever you wanted to process from the beginning if you had a referral code
if(!is_null($ref)) {
   // do your action
}
?>

使用上面的内容,你真的不需要任何类型的JavaScript。