从查询字符串中获取参数不起作用... Javascript

时间:2015-12-27 21:36:43

标签: javascript jquery html jsp parameters

我必须为大学项目编写Web应用程序代码。 它类似于使用JSP,Javascript,Java,JQuery和SQL的日历。 所以我已经走得很远了,但是我的查询字符串出了问题。 我试图将点击的单元格的ID提供给另一个页面,该页面应该在数据库中查找具有该ID的条目。我通过QueryString传递此ID,但无法将其解析出来。 我尝试了一切。每一小段代码,都应该将参数输出。 那是我最近的尝试:

    var i = location.search.split('i=')[1];

测试参数是否已被删除,我已经尝试过这个,但是没有工作......

    var x = document.getElementById("vname");
    x.setAttribute("value",i);

vname是该站点上表单的输入字段的id。 谢谢您的帮助 :) 编辑:我的ID不仅仅是整数,这样的事情" fr21"星期五21:00。

我真的尝试过你推荐的一切,但它没有用。如果我在firefox上使用firebug它会说:" ReferenceError:functionxyz未定义"虽然它是...... 不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

使用像split('i=')这样的方法并不是很强大。更好地使用正则表达式和过滤器来获取特定的查询字符串值,如

<script>
  var matches = location.href.match(/&?i=(\w+)&?/);

  if (matches !== null)
  {
    var id = matches[1];

    alert(id);
  }
</script>

这样您就可以支持多个查询字符串参数。因此,当使用abc=d&i=123&g=h之类的查询字符串时,脚本将返回123

修改

/&?i=(\w+)&?/表示

/开始正则表达式

&?匹配可选&amp;字符

i= i =

(启动捕获组,稍后使用匹配[1]

读取值

\w匹配所有字符A-Z,a-z,0-9和_

)关闭捕获组

&?匹配可选&amp;字符

/结束正则表达式