【问题标题】:Get value from URL in Javascript|jQuery and Symfony2 project从 Javascript|jQuery 和 Symfony2 项目中的 URL 获取价值
【发布时间】:2015-04-13 09:44:53
【问题描述】:

我需要使用 Javascript/jQuery 从 URL 获取一些参数,我发现了这个不错的功能:

function getURLParameter(sParam) {
    var sPageURL = window.location.search.substring(1),
        sURLVariables = sPageURL.split('&');

    for (var i = 0; i < sURLVariables.length; i++) {
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam) {
            return sParameterName[1];
        }
    }
};

所以我开始在我的代码中使用,但我遇到了一些问题,因为我正在寻找的参数来自 undefined。首先,这是一个 Symfony2 项目,所以Profiler 给了我这个信息:

Request Attributes

Key                             Value
_route_params                   [registro => 1, solicitud => 58]
...
registro                        1
solicitud                       58

我需要的是registrosolicitud。所以我在 Javascript 方面所做的是:

console.log(getURLParameter('registro')); // gets undefined

但令我惊讶的是,我得到了undefined,我认为原因是registro 不存在于 URL 中,即http://project.dev/app_dev.php/proceso/1/58/modificar,但它存在于请求中。如何从 Javascript 中获取 registrosolicitud 值?我需要将这些参数发送到 Ajax 调用,有什么建议吗?

【问题讨论】:

  • .php之后分割url段
  • @charlietfl 例子?
  • 还可以在页面加载时将一个变量从 php 传递给 javascript,其中包含 url 参数

标签: javascript php jquery symfony symfony-routing


【解决方案1】:

尝试使用此功能:

function getParameters(){
    var url = window.location.href; //get the current url
    var urlSegment = url.substr(url.indexOf('proceso/')); //copy the last part
    var params = urlSegment.split('/'); //get an array
    return {registro: params[1], solicitud: params[2]}; //return an object with registro and solicitud
}

然后你可以调用函数并使用值:

var params = getParameters();
console.log(params.registro);
console.log(params.solicitud);

【讨论】:

  • 该函数看起来不错,但仅限于这种情况,其想法是使其适用于任何参数,不仅适用于这两个,你有吗?对此有更好的想法?
  • 如果你想写一个通用的函数,你需要在 URL 中包含每个参数的名称,例如:/registro/1/solicitud/48 以获取键值对
  • 你可以做的另一件事是拆分整个URL,如果你知道每个参数在数组中的位置,你就可以得到每个参数的值。
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多