【问题标题】:Getting Parameters out of Query String doesn't work...Javascript从查询字符串中获取参数不起作用...Javascript
【发布时间】:2015-12-27 21:36:43
【问题描述】:

我必须为一个大学项目编写一个网络应用程序。 它类似于使用 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 不只是整数,它在星期五 21:00 类似于“fr21”。

我已经尝试了你推荐的所有东西,但它不起作用。如果我在 firefox 上使用 firebug,它会说:“ReferenceError: functionxyz is not defined”虽然它是...... 不知道该怎么办。

【问题讨论】:

  • 如果你在控制台中记录i的值,你会得到什么?
  • 设置<input> DOM 元素节点的value 应该只是x.value = i;
  • 查询字符串是如何设置的?
  • (at)Ilya: 不知道如何登录 :(.... (at)Pointy: 我也试过了,也不管用 (at)guest271314: 它是" site.jsp?i="+ident" 其中 ident 是被点击单元格的 id

标签: javascript jquery html jsp parameters


【解决方案1】:

使用像split('i=') 这样的方法不是很健壮。更好地使用正则表达式并过滤特定的查询字符串值,例如

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

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

    alert(id);
  }
</script>

这样你就有了支持多个查询字符串参数的优势。所以当使用abc=d&amp;i=123&amp;g=h这样的查询字符串时,脚本会返回123

编辑

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

/开始正则表达式

&amp;? 匹配可选的 & 字符

i=i=

( 启动捕获组,稍后使用 match[1] 读取值

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

)关闭捕获组

&amp;? 匹配可选的 & 字符

/结束正则表达式

【讨论】:

  • 真的不知道你在括号里做了什么 (/i=(\w+&/)
猜你喜欢
  • 2017-07-20
  • 2017-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 2021-05-24
  • 1970-01-01
相关资源
最近更新 更多