Javascript传递var onclick选择和复选框

时间:2013-09-03 12:23:07

标签: javascript checkbox

所以我的页面有两列。在右栏中显示结果。

结果包括所有元素。在右栏中,我有一些复选框。我可以根据在。中选择的选项填充复选框。

我必须单击“提交”以获取右栏中的数据。我不想要AJAX。我希望使用选中的选项刷新页面,并根据该选项显示结果。我能够编写PHP部分代码。要获取在

中选择的选项的值

所以我的代码是:

<select id="theselect" onclick = "afterChange()">
    <option value="0"> Select the Department </option>
    <option value="11"> Department11 </option>
    <option value="22"> Department22 </option>
    <option value="33"> Department33 </option>
</select>


var url = location.href;
document.getElementById("mydiv").innerHTML = url;

function afterChange(){
var dept = document.getElementById("theselect").value;
  if (dept && dept!= 0) {
  var myline = url + "&dept=" + dept;
  document.getElementById("mynewdiv").innerHTML = myline;
  window.location= myline;
  }
}

<p id='mydiv'> </p> <br />
<p id='mynewdiv'> </p>

<?php 
 if(isset($_GET['dept'])) {

 $cat = $_GET['dept'];

 echo "You are now searching in $cat";

 //code to show content from database for that department

?>

我知道有一种更好的方法可以做到这一点,我不知道。到目前为止,代码第一次正常工作。我可以根据SELECT选项从DB获取结果。 但是当我更改select时,它会再次获取整个URL,并将新值SELECT添加到URL中,这会使PHP感到困惑。

因此,如果我的网站网址是:     http://mysite.php?dept=22 更改SELECT第二次后,它会变为     http://mysite.php?dept=22&dept=33

SELECT之后我也有几个复选框。

我希望根据选择和复选框对结果进行排序。

我知道必须有一个简单的方法来做到这一点,但我很难找到它。

请帮助我理解这个概念。非常感谢你。

1 个答案:

答案 0 :(得分:0)

  var url = location.href;

您将始终获得当前网址。现在,您再次添加您的部门时,url上的http://mysite.php?dept=22意味着第二次刷新:

var myline = url + "&dept=" + dept;

会产生您描述的错误。 要处理此问题,您必须首先剥离旧参数,或者如果您只需要一个参数,请执行以下操作:

var url = location.origin + location.pathname

代替location.href了解更多信息,您可以阅读this