用于预填充html表单字段的查询字符串

时间:2009-10-05 17:34:19

标签: javascript html

我为一个拥有单独章节网站的组织管理一个网站。每个章节链接到的主网站上都有一个会员注册表单。在表单上有一个下拉框,允许一个人选择他们想要加入的章节。我想做的是让每个章节网站都使用一个特定的表格链接,从表格中预先选择他们的章节。

搜索网页后,我发现我可能需要使用Javascript函数来使用查询字符串。经过我所有的搜索,我仍然无法弄清楚要使用的确切代码。该页面是一个基本的HTML页面...没有php,它托管在Linux服务器上。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:0)

如果您格式化您的网址:

www.myorg.com?chapter=1

您可以将此脚本添加到您的html头:

 function getparam(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null)
        return "";
    else
        return results[1];
}

function loadform()
{

  var list = document.getElementById("mychapterdropdown");
  var chapter = getparam("chapter");
  if (chapter>=0 && chapter < list.options.length)
  {
    list.selectedIndex = chapter;
  }
}

你的html body标签:

<body onload="loadform();" >

可能会添加更多验证检查,但这是一般的想法。

答案 1 :(得分:0)

听起来你正在寻找的是GET或POST请求。例如,如果您的用户从表单中选择“章A”并点击选择,则可以允许从其他站点(例如http://www.yoursite.com/form.html?chapter=A)重定向以允许预选A章。在Javascript中,这是由

完成的
var chapter="";
var queryString = location.search.substring(1);
if ( queryString.length > 0 ) {
  var getdata = queryString.split("&");
  var keyvalues;
  for(var i=0; i < getdata.length; i++){
    keyvalues = getdata.split("=");
  }
} else {
  chapter = "Not Found";
}

document.getElementById( "ChapterID").value = keyvalues['chapter'];

这是未经测试的,所以不要诱使我:)。

答案 2 :(得分:0)

也许是使用parse_url的东西

$params = parse_url()
$query = $params['query'];

$query_pairs = explode('&',$query);
$key_val = array();
foreach($query_pairs as $key => $val){
    $key_val[$key] = $val;
}

http://www.php.net/manual/en/function.parse-url.php

答案 3 :(得分:0)

您可能必须使用动态ajax内容。使用以下javascript读取查询字符串,然后使用此javascript加载该div中的html文件。