Javascript 如何使用self.location传递多个变量

Javascript 如何使用self.location传递多个变量,javascript,php,reload,Javascript,Php,Reload,选择下拉值时,我无法使用self.location on reload函数传递和获取变量 我只得到了通过url传递的第一个值,如何通过samr url dd-mysqli.php传递第二个下拉列表中的值 @$cat=$_GET['cat']; @$subcat=$_GET['subcat'];// Use this line or below line if register_global is off if(strlen($cat) > 0 and !is_numeric($cat))

选择下拉值时,我无法使用self.location on reload函数传递和获取变量

我只得到了通过url传递的第一个值,如何通过samr url dd-mysqli.php传递第二个下拉列表中的值

@$cat=$_GET['cat']; 
@$subcat=$_GET['subcat'];// Use this line or below line if register_global is off
if(strlen($cat) > 0 and !is_numeric($cat)){ // to check if $cat is numeric data or not. 
echo "Data Error";
exit;
}

?>
<?php
if(isset($_POST['submit'])){
$cat=$_POST['cat'];
$subcat=$_POST['subcat'];

echo "Value of \$cat = $cat <br>Value of \$subcat = $subcat ";}
?>


<html>

<head>
<title>Multiple drop down list box from plus2net</title>
<SCRIPT language=JavaScript>
<!--
function reload(form)
{
var val=form.cat.options[form.cat.options.selectedIndex].value;
    var val2=form.subcat.options[form.subcat.options.selectedIndex].value;


    self.location='dd-mysqli.php?cat=' + val + '&subcat=' + val2;
}
//-->

</script>

  echo "<form method=post name=f1 action='dd-mysqli.php'>";
//////////        Starting of first drop downlist /////////
echo "<select name='cat' onchange=\"reload(this.form)\"><option value=''>Select one</option>";
if($stmt = $connection->query("$query2")){
    while ($row2 = $stmt->fetch_assoc()) {
    if($row2['id']==@$cat){echo "<option selected value='$row2[id]'>$row2[category_description]</option>";}
else{echo  "<option value='$row2[id]'>$row2[category_description]</option>";}

  }
}else{
echo $connection->error;
}

echo "</select>";
//////////////////  This will end the first drop down list ///////////
echo "<select name='subcat'  onchange=\"reload(this.form)\"><option value=''>Select one</option>";
if(isset($cat) and strlen($cat) > 0){
if($stmt = $connection->prepare("SELECT * FROM category AS c INNER JOIN category_language AS cl ON c.id=cl.category_id where parent_id=? && lang_id='1' ORDER BY category_description")){
$stmt->bind_param('i',$cat);
$stmt->execute();
 $result = $stmt->get_result();
 while ($row1 = $result->fetch_assoc()) {
     if($row1['id']==@subcat){echo "<option selected value='$row1[id]'>$row1[category_description]</option>";}
 else{echo  "<option value='$row1[id]'>$row1[category_description]</option>";}

  }

}
@$cat=$\u GET['cat'];
@$subcat=$_GET['subcat'];//如果register_global关闭,则使用此行或下行
如果(strlen($cat)>0且!是数值($cat)){//检查$cat是否为数值数据。
回显“数据错误”;
出口
}
?>
plus2net中的多个下拉列表框
回声“;
//////////开始第一个下降列表/////////
回显“选择一个”;
如果($stmt=$connection->query($query2))){
而($row2=$stmt->fetch_assoc()){
如果($row2['id']=@$cat){echo“$row2[类别描述]”;}
else{echo“$row2[类别描述]”;}
}
}否则{
echo$连接->错误;
}
回声“;
//////////////////这将结束第一个下拉列表///////////
回显“选择一个”;
如果(isset($cat)和strlen($cat)>0){
if($stmt=$connection->prepare($c.id=cl.category\u id,其中parent\u id=?&&lang\u id='1'按类别描述排序),从类别中选择*作为c内部连接类别\u语言作为c.id=cl.category\u id){
$stmt->bind_参数('i',$cat);
$stmt->execute();
$result=$stmt->get_result();
而($row1=$result->fetch_assoc()){
如果($row1['id']==@subcat){echo“$row1[category_description]”;}
else{echo“$row1[类别描述]”;}
}
}

我如何解决这个问题呢

Ananthu,欢迎您成为新的SO海报。如果您对如何表达您的问题有更多的思考,您的帖子将得到极大的增强。例如,在您的问题中包含问题所在的编程语言将有助于其他人。这是因为您如何使用
reload
函数,它确实会被调用d每当您更改触发位置更改的其中一个选择的值时。which函数使用而不是重新加载