Php 基于复选框将参数附加到URL

Php 基于复选框将参数附加到URL,php,javascript,Php,Javascript,因此,我有一个表单中包含8个复选框的列表。这些复选框用于控制将在帧中加载的链接。但是我不知道从哪里开始… 复选框1(附录1)-已选中 复选框2(附录2) 复选框3(附录3)-选中 复选框4(附录4) 复选框5(附录5)-选中 复选框6(附录6) 复选框7(附录7) 复选框8(附录8) 因此,基于此,我将有一个基本URL,如和,因为复选框1、3和5是选中appendThis1、appendThis2、appendThis3将被添加到URL的末尾,但其他复选框都不会向URL添加任何内容。每个复选框将

因此,我有一个表单中包含8个复选框的列表。这些复选框用于控制将在帧中加载的链接。但是我不知道从哪里开始…
复选框1(附录1)-已选中
复选框2(附录2)
复选框3(附录3)-选中
复选框4(附录4)
复选框5(附录5)-选中
复选框6(附录6)
复选框7(附录7)
复选框8(附录8)

因此,基于此,我将有一个基本URL,如和,因为复选框1、3和5是选中appendThis1、appendThis2、appendThis3将被添加到URL的末尾,但其他复选框都不会向URL添加任何内容。每个复选框将向URL添加或删除其特定参数。

此外,每当选中复选框时,它都会重新加载URL。

我的做法如下

  • 确保在html表单中,所有的checbox都有相同的名称,末尾有空的方括号,这样您就可以在php中得到一个数组。作为值,您应该设置要附加到html的字符串。大概是这样的:
选项1
选项2

  • 在php代码中,只需将文章中返回的te数组内爆,并将其附加到html中即可。(请参见此处的更多信息)。伪代码如下所示:

    $url='1!'http://www.google.com?';
    $checkboxes=$_POST['myCheckboxes']
    $url.=内爆('&',$checkbox)

  • 对于选中复选框时自动提交,您需要一些客户端脚本。我的选择是jQuery,它看起来是这样的:

    $('#myForm input[type=“checkbox”]”)。更改(function(){
    $(“#myForm”).submit();
    };


请注意,所有代码都没有经过测试,但它应该可以正常工作,或者至少可以为您指明正确的方向。当然,欢迎您进行更正!

原始Javascript示例。您可以使用生成的URL加载iframe


arr_sel=新数组();
函数构造函数URL(cv)
{
如果(排列选择长度==0)
{
方位选择推力(cv);
}否则{
if(伊纳雷(cv,arr_sel))
{
key=getKey(cv、arr_sel);
排列选择拼接(图例1);
}否则{
方位选择推力(cv);
}
}
makeURL(arr_sel);
}
函数INARAY(val、arr)
{
变量长度=arr.length;
对于(变量i=0;i
酒吧
http://google.com?
如何设置此选项,以便在未选择任何选项时加载默认URL,在取消选择最后一个URL后,将再次加载该默认URL。
<script language='javascript'>

arr_sel = new Array();


function constructURL(cv)
{
  if (arr_sel.length==0)
  {
     arr_sel.push(cv);
  } else {

    if (inArray(cv, arr_sel))
    {
        key = getKey(cv, arr_sel);
        arr_sel.splice(key,1);
    } else {
        arr_sel.push(cv);
    }

  }
  makeURL(arr_sel);

}
function inArray(val, arr) 
{
    var length = arr.length;
    for(var i = 0; i < length; i++) {
        if(arr[i] == val) return true;
    }
    return false;
}

function getKey(val, arr)
{
  for (var i = 0; i < arr.length; i++) 
  {
    if (arr[i]==val)
      return i
  }
}

function makeURL(arr_sel)
{

  opts = new String; 
  arr_opts = new Array();
  for (var i = 0; i < arr_sel.length; i++) 
  {
    arr_opts.push(arr_sel[i]);
  }
  url = 'http://google.com?' + arr_opts.join('&');

  document.getElementById('myurl').innerHTML = url;

}
</script>

<input type=checkbox name=whatever value='opt1=foo' onClick="constructURL(this.value)"> foo <br>
<input type=checkbox name=whatever value='opt2=bar' onClick="constructURL(this.value)"> bar <br>

<div id='myurl'>http://google.com?</div>