【问题标题】:How to pass javascript variable through url?如何通过 url 传递 javascript 变量?
【发布时间】:2016-03-29 10:33:19
【问题描述】:

我需要通过 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) {

            }
        });
    });
});

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

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

我认为应该重新加载该页面以便$_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 属性)。你现在能帮我解决这个问题吗?

【问题讨论】:

  • 删除数据类型:JSON ;)
  • 可以分享notifications_page.php的相关部分吗?
  • 检查您的脚本是否正确转到“notifications_page.php”。如果它的工作意味着首先测试 echo msg。使用后 $_GET['clicks']
  • @briosheje 相关部分是什么意思?
  • @Ognj3n :您实际获取数据的部分;)(带有 $_GET 的部分)

标签: javascript php jquery get


【解决方案1】:

您将 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?

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-22
      • 2016-09-30
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      • 2014-11-07
      • 2018-06-28
      • 2011-07-23
      相关资源
      最近更新 更多