如何通过url传递javascript变量?

时间:2016-03-29 10:33:19

标签: javascript php jquery get

我需要通过url传递JavaScript(jQuery)变量,所以我可以使用php在$_GET中捕获它。这是我已经尝试过的:

$(document).ready(function(){
    var click=0;
    $('#next').click(function(){
        var count=$('#next').val();//ovdje imamo koliko je maksimalna proslidjena vrijednost
        var data = {};
        click++;
        if(click>=count){
            click=count;
        }
        data.clicks=click;

        window.location.replace('https://www.servis-racunara.net/pages/notifications_page.php?click='+click);
    });
});

不起作用。

$(document).ready(function () {
    var click = 0;
    $('#next').click(function () {
        var count = $('#next').val();//ovdje imamo koliko je maksimalna proslidjena vrijednost
        var data = {};
        click++;
        if (click >= count) {
            click = count;
        }
        data.clicks = click;
        $.get("notifications_page.php",
            { page: clicks },
            function () {

            });
    });
});

不起作用。

$(document).ready(function(){
    var click=0;
    $('#next').click(function(){
        var count=$('#next').val();//ovdje imamo koliko je maksimalna proslidjena vrijednost
        var data = {};
        click++;
        if(click>=count){
            click=count;
        }
        data.clicks=click;
        $.ajax({
            url: "notifications_page.php",
            type: "GET",
            dataType: "JSON",
            data: data,
            async: true,
            success: function (data) {

            }
        });
    });
});

这很有效,但很奇怪。它发送参数,但我无法在$_GET中使用PHP来捕获它。如果您对如何处理此问题有所了解,请提供帮助。 的更新: 当我在Inspect下查看Network工具时,我看到的是: enter image description here

一切正常但我不知道如何捕捉这个参数,因为在我的页面中这里是$_GET的样子: enter image description here

我认为应该重新加载该页面,以便$_GET捕获参数。你觉得怎么样?

第二次更新: 我找到了一种方法将此变量click放入url中:

$(document).ready(function(){
        var click=0;
        $('#next').click(function(){
            var count=$('#next').val();//ovdje imamo koliko je maksimalna proslidjena vrijednost

            click++;
            if(click>=count){
                click=count;
            }

            $('a').attr('href','?id='+click);
});
        });

这最后一行完成了所有工作。但由于重新加载页面(href属性),现在我的计数器不起作用。你能帮我解决一下吗?

2 个答案:

答案 0 :(得分:0)

您正在将JS对象作为数据传递。在将数据传递给AJAX调用之前对数据执行JSON.stringify,它将起作用。例如:

$.ajax({
        url: "notifications_page.php",
        type: "GET",
        dataType: "JSON",
        data: JSON.stringify(data),
        async: true,
        success: function (data) {

        }
});

参考:Passing js object as json to jquery?

答案 1 :(得分:0)

在你的ajax部分尝试这个结构,

    $.ajax({
      type: "GET",
      data: {
        "count": count
      },
      url: "notifications_page.php",
      success: function(data) {
        alert("Success");
      },
      error: function(data) {
        alert("fail");
      }