Jump to content

[SOLVED] Help with drop down selection code


hane

Recommended Posts

I have two different dynamically populated drop downs from mysql. I would like to know if it is possible to select the different drop downs with an array drop down. Eg. In the array drop down I have options Classifieds and Directory if classifieds is selected i would like to use the classifieds menu if directory is selected i want to use directory menu.

 

Here is my code (sorry i posted the whole menu code but i think that's the only way that you will see what i want) Please just point me in the right direction i'm very new to php

<SCRIPT language=JavaScript>
function reload(form){
var val=form.cat.options[form.cat.options.selectedIndex].value; 
self.location='menu_l.php?cat=' + val ;
}
</script>

<?php
  $data = array( 1=> "Classifieds", 2=> "Directory"); 
  $data = str_replace(" ", " ", $data); 
  
  echo '<SELECT name=data>'; 
  foreach ($data as $key => $value) 
  { 
  echo '<OPTION value='.$value.'> '.$value.''; 
  } 
  echo '</select>'; 

if ($data = "1")
{
  	$quer2=mysql_query("SELECT DISTINCT c_category_name,c_category_id FROM c_category order by c_category_name");
  
  	$cat=$_GET['cat']; 
    if(isset($cat) and strlen($cat) > 0){
    $quer=mysql_query("SELECT DISTINCT c_subcategory_name,c_subcategory_id FROM c_subcategory where c_category_id=$cat order by c_subcategory_name");
    }
  	else{$quer=mysql_query("SELECT DISTINCT c_subcategory_name, c_subcategory_id FROM c_subcategory order by c_subcategory_name"); 
  	}
  	
  	echo "<form method=post name=f1 action='classified_show.php'>";
    echo "<select name='cat' onchange=\"reload(this.form)\"><option value=''>Select Category</option>";
    while($noticia2 = mysql_fetch_array($quer2)) {
    if($noticia2['c_category_id']==@$cat){
  	echo "<option selected value='$noticia2[c_category_id]'>$noticia2[c_category_name]</option>"."<BR>";}
    else{echo "<option value='$noticia2[c_category_id]'>$noticia2[c_category_name]</option>";}
    }
    echo "</select>";
    echo "<br /><br />";
    echo "<select name='subcat'><option value=''>Select Subcategory</option>";
  	echo "<option value='1'>All</option>";
    while($noticia = mysql_fetch_array($quer)) {
    echo "<option value='$noticia[c_subcategory_id]'>$noticia[c_subcategory_name]</option>";
    }
    echo "</select>";
    echo "<br /><br />";
  	
  	$query="SELECT area_name,area_id FROM area order by area_name";
   
    $result = mysql_query ($query);
  	
    echo "<select name='area' > <option value=''>Select Area</option>";
  
    while($nt=mysql_fetch_array($result)){
    echo "<option value=$nt[area_id]>$nt[area_name]</option>";
    }
    echo "</select>"; 
  	echo "<br /><br />";
    echo "<input type=submit value=Submit>";
    echo "</form>";
  }
else
{
  	$quer2=mysql_query("SELECT DISTINCT d_category_name,d_category_id FROM d_category order by d_category_name");
  
  	$cat=$_GET['cat']; 
    if(isset($cat) and strlen($cat) > 0){
    $quer=mysql_query("SELECT DISTINCT d_subcategory_name,d_subcategory_id FROM d_subcategory where d_category_id=$cat order by d_subcategory_name");
    }
  	else{$quer=mysql_query("SELECT DISTINCT d_subcategory_name,d_subcategory_id FROM d_subcategory order by d_subcategory_name"); 
  	}
  	
  	echo "<form method=post name=f1 action='../directory_show.php'>";
    echo "<select name='cat' onchange=\"reload(this.form)\"><option value=''>Select one</option>";
    while($noticia2 = mysql_fetch_array($quer2)) {
    if($noticia2['d_category_id']==@$cat){echo "<option selected value='$noticia2[d_category_id]'>$noticia2[d_category_name]</option>"."<BR>";}
    else{echo "<option value='$noticia2[d_category_id]'>$noticia2[d_category_name]</option>";}
    }
    echo "</select>";
    echo "<br /><br />";
    echo "<select name='subcat'><option value=''>Select one</option>";
   	echo "<option value='1'>All</option>";
    while($noticia = mysql_fetch_array($quer)) {
    echo "<option value='$noticia[d_subcategory_id]'>$noticia[d_subcategory_name]</option>";
    }
    echo "</select>";
    echo "<br /><br />";
  	$query="SELECT area_name,area_id FROM area order by area_name";
   
    $result = mysql_query ($query);
  	
    echo "<select name='area' > <option value=''>Select one</option>";
    
    while($nt=mysql_fetch_array($result)){
    echo "<option value=$nt[area_id]>$nt[area_name]</option>";
    }
    echo "</select>"; 
  	echo "<br /><br />";
    echo "<input type=submit value=Submit>";
    echo "</form>";
  }

  mysql_close($con);
?>

 

 

I want a drop down with Options [1] Classifieds [2] Directory. When [1] is selected the classifieds category drop down , subcategory drop down and area drop down must display. When [2] is selected directory category drop down , subcategory drop down and area drop down must display. I have the dynamic drop downs and they work. Now i just have to link the two dynamic drop downs with the first drop down of classifieds & directory. Hope that helps. Thanks

Use hidden values.

 

1. First design two combo box

2. If first is selected, call a function on the , combo's onchange event.

3. in that on change event, assign value to a hidden value

4. in the page, assign a variable, to display or hide the second combo.

 

 

<script>

function selectoption(option)

{

var selectedoption=document.getElementById('option').value;

document.getElementById('option_Filter').value=selectedoption;

 

if(document.getElementById('option_Filter').value == 2)

{

document.getElementById('ViewCategory').style.visibility='visible';

document.getElementById('ViewCategorytd').style.visibility='visible';

}

else

{

document.getElementById('ViewCategory').style.visibility='hidden';

document.getElementById('ViewCategorytd').style.visibility='hidden';

}

document.definition.submit();

 

}

</script>

 

  <?

if($option_Filter == 2)

{

$vis='visible';

}

else

{

$vis='hidden';

}

 

print "<select name='option' id='option' onChange='selectoption(this.form.option)'>";

 

 

print "<select  style='$vis' name='ViewCategory' id='ViewCategory' onChange='selectviewcategory(this.form.ViewCategory)'>";//

 

 

?>

 

 

Hi thanks for that, I've got a code like that but onreload my menus are hidden and I need it to be visible here is the code that I have.

 

<script type="text/javascript">
//select funtion
// I had to hide both drop down boxes before I showed the visible one 
// otherwise it would not erase the previos box thus starting with a clean 
// page

function select()
{
sel = document.getElementById('data');
if (sel.options[sel.selectedIndex].value == 'classified')
{
sel1.style.visibility = "hidden";
sel2.style.visibility = "hidden";
sel1.style.visibility = "visible";
}
else if (sel.options[sel.selectedIndex].value == 'directory')
{
sel1.style.visibility = "hidden";
sel2.style.visibility = "hidden";
sel2.style.visibility = "visible";
}
else
{
sel1.style.visibility = "hidden";
sel2.style.visibility = "hidden";
}
}
</script
<table>
<tr>
<td align="left">
<select name="data"  id="data" style="WIDTH: 125px" onChange="select()">
<option value="" selected="">Select</option>
<option value="classified">Classified</option>
<option value="directory">Directory</option>
</select>
</td>
</tr>
</table>

<div id="sel1" STYLE="visibility:hidden;">
<!--table>
<tr>
<td align="left">
<select name="classified" style="WIDTH: 125px">
<option value="" selected=""></option>
<OPTION value="dude">dude</option>
<OPTION value="dude1">dude1</option>
<OPTION value="dude2">dude2</option>
<OPTION value="dude3">dude3</option>
</select></td></tr></table-->
<SCRIPT language=JavaScript>
function reload(form){
var val=form.cat.options[form.cat.options.selectedIndex].value; 
self.location='menu_l.php?cat=' + val ;
sel1.style.visibility = "visible";
}
</script> 
<?php

$quer2=mysql_query("SELECT DISTINCT c_category_name,c_category_id FROM c_category order by c_category_name");

$cat=$_GET['cat']; 
  if(isset($cat) and strlen($cat) > 0){
  $quer=mysql_query("SELECT DISTINCT c_subcategory_name,c_subcategory_id FROM c_subcategory where c_category_id=$cat order by c_subcategory_name");
  }
else{$quer=mysql_query("SELECT DISTINCT c_subcategory_name, c_subcategory_id FROM c_subcategory order by c_subcategory_name"); 
}

echo "<form method=post name=f1 action='classified_show.php'>";
  echo "<select name='cat' onchange=\"reload(this.form)\"><option value=''>Select Category</option>";
  while($noticia2 = mysql_fetch_array($quer2)) {
  if($noticia2['c_category_id']==@$cat){
echo "<option selected value='$noticia2[c_category_id]'>$noticia2[c_category_name]</option>"."<BR>";}
  else{echo "<option value='$noticia2[c_category_id]'>$noticia2[c_category_name]</option>";}
  }
  echo "</select>";
  echo "<br /><br />";
  echo "<select name='subcat'><option value=''>Select Subcategory</option>";
echo "<option value='1'>All</option>";
  while($noticia = mysql_fetch_array($quer)) {
  echo "<option value='$noticia[c_subcategory_id]'>$noticia[c_subcategory_name]</option>";
  }
  echo "</select>";
  echo "<br /><br />";

$query="SELECT area_name,area_id FROM area order by area_name";

  $result = mysql_query ($query);

  echo "<select name='area' > <option value=''>Select Area</option>";

  while($nt=mysql_fetch_array($result)){
  echo "<option value=$nt[area_id]>$nt[area_name]</option>";
  }
  echo "</select>"; 
echo "<br /><br />";
  echo "<input type=submit value=Submit>";
  echo "</form>";
  
  	
  mysql_close($con);
?>

</div>

<div id="sel2" STYLE="visibility:hidden;">
<!--table>
<tr>
<td align="left">
<select name="directory" style="WIDTH: 125px">
<option value="" selected=""></option>
<OPTION value="dude">dude</option>
<OPTION value="dude1">dude1</option>
<OPTION value="dude2">dude2</option>
<OPTION value="dude3">dude3</option>
</select></td></tr></table></div--> 
<SCRIPT language=JavaScript>
function reload(form){
var val=form.cat.options[form.cat.options.selectedIndex].value; 
self.location='menu_l.php?cat=' + val ;
}
</script>
<?php

$quer2=mysql_query("SELECT DISTINCT d_category_name,d_category_id FROM d_category order by d_category_name");

$cat=$_GET['cat']; 
  if(isset($cat) and strlen($cat) > 0){
  $quer=mysql_query("SELECT DISTINCT d_subcategory_name,d_subcategory_id FROM d_subcategory where d_category_id=$cat order by d_subcategory_name");
  }
else{$quer=mysql_query("SELECT DISTINCT d_subcategory_name,d_subcategory_id FROM d_subcategory order by d_subcategory_name"); 
}

echo "<form method=post name=f1 action='../directory_show.php'>";
  echo "<select name='cat' onchange=\"reload(this.form)\"><option value=''>Select one</option>";
  while($noticia2 = mysql_fetch_array($quer2)) {
  if($noticia2['d_category_id']==@$cat){echo "<option selected value='$noticia2[d_category_id]'>$noticia2[d_category_name]</option>"."<BR>";}
  else{echo "<option value='$noticia2[d_category_id]'>$noticia2[d_category_name]</option>";}
  }
  echo "</select>";
  echo "<br /><br />";
  echo "<select name='subcat'><option value=''>Select one</option>";
	echo "<option value='1'>All</option>";
  while($noticia = mysql_fetch_array($quer)) {
  echo "<option value='$noticia[d_subcategory_id]'>$noticia[d_subcategory_name]</option>";
  }
  echo "</select>";
  echo "<br /><br />";
$query="SELECT area_name,area_id FROM area order by area_name";

  $result = mysql_query ($query);

  echo "<select name='area' > <option value=''>Select one</option>";
  
  while($nt=mysql_fetch_array($result)){
  echo "<option value=$nt[area_id]>$nt[area_name]</option>";
  }
  echo "</select>"; 
echo "<br /><br />";
  echo "<input type=submit value=Submit>";
  echo "</form>";
  
  	
  mysql_close($con);
?>
</div>

OK I've got my code working sort of now I just need help with $_GET. How do i keep my first value in the url after the second reload. Here is my code.

 

<SCRIPT language=JavaScript>
function reload1(form){
var val1=form.dat.options[form.dat.options.selectedIndex].value; 
self.location='menu_l.php?dat=' + val1 ;
}

function reload(form){
var val1=form.dat.options[form.dat.options.selectedIndex].value; 
var val=form.cat.options[form.cat.options.selectedIndex].value; 
self.location='menu_l.php?dat=' + val1 + '&cat=' + val ;
}

</script>

<?php


echo "<form method=get name=f2 action=''>";
echo "<select name='dat' onchange=\"reload1(this.form)\"><option value='0'>Select</option>";
echo "<option value='1'>Classifieds</option>";
echo "<option value='2'>Directory</option>";
echo "</select>"; 
echo "<br /><br />";

if ($data == "1")
{
$data=$_GET['dat']; 
  	$quer2=mysql_query("SELECT DISTINCT c_category_name,c_category_id FROM c_category order by c_category_name");
  
  	$cat=$_GET['cat']; 
    if(isset($cat) and strlen($cat) > 0){
    $quer=mysql_query("SELECT DISTINCT c_subcategory_name,c_subcategory_id FROM c_subcategory where c_category_id=$cat order by c_subcategory_name");
    }
  	else{$quer=mysql_query("SELECT DISTINCT c_subcategory_name, c_subcategory_id FROM c_subcategory order by c_subcategory_name"); 
  	}
  	
  	echo "<form method=post name=f1 action='classified_show.php'>";
    echo "<select name='cat' onchange=\"reload(this.form)\"><option value=''>Select Category</option>";
    while($noticia2 = mysql_fetch_array($quer2)) {
    if($noticia2['c_category_id']==@$cat){
  	echo "<option selected value='$noticia2[c_category_id]'>$noticia2[c_category_name]</option>"."<BR>";}
    else{echo "<option value='$noticia2[c_category_id]'>$noticia2[c_category_name]</option>";}
    }
    echo "</select>";
    echo "<br /><br />";
    echo "<select name='subcat'><option value=''>Select Subcategory</option>";
  	echo "<option value='1'>All</option>";
    while($noticia = mysql_fetch_array($quer)) {
    echo "<option value='$noticia[c_subcategory_id]'>$noticia[c_subcategory_name]</option>";
    }
    echo "</select>";
    echo "<br /><br />";
  	
  	$query="SELECT area_name,area_id FROM area order by area_name";
   
    $result = mysql_query ($query);
  	
    echo "<select name='area' > <option value=''>Select Area</option>";
  
    while($nt=mysql_fetch_array($result)){
    echo "<option value=$nt[area_id]>$nt[area_name]</option>";
    }
    echo "</select>"; 
  	echo "<br /><br />";
    echo "<input type=submit value=Submit>";
    echo "</form>";
  }
else
{
  	$quer2=mysql_query("SELECT DISTINCT d_category_name,d_category_id FROM d_category order by d_category_name");
  
  	$cat=$_GET['cat']; 
    if(isset($cat) and strlen($cat) > 0){
    $quer=mysql_query("SELECT DISTINCT d_subcategory_name,d_subcategory_id FROM d_subcategory where d_category_id=$cat order by d_subcategory_name");
    }
  	else{$quer=mysql_query("SELECT DISTINCT d_subcategory_name,d_subcategory_id FROM d_subcategory order by d_subcategory_name"); 
  	}
  	
  	echo "<form method=post name=f1 action='../directory_show.php'>";
    echo "<select name='cat' onchange=\"reload(this.form)\"><option value=''>Select one</option>";
    while($noticia2 = mysql_fetch_array($quer2)) {
    if($noticia2['d_category_id']==@$cat){echo "<option selected value='$noticia2[d_category_id]'>$noticia2[d_category_name]</option>"."<BR>";}
    else{echo "<option value='$noticia2[d_category_id]'>$noticia2[d_category_name]</option>";}
    }
    echo "</select>";
    echo "<br /><br />";
    echo "<select name='subcat'><option value=''>Select one</option>";
   	echo "<option value='1'>All</option>";
    while($noticia = mysql_fetch_array($quer)) {
    echo "<option value='$noticia[d_subcategory_id]'>$noticia[d_subcategory_name]</option>";
    }
    echo "</select>";
    echo "<br /><br />";
  	$query="SELECT area_name,area_id FROM area order by area_name";
   
    $result = mysql_query ($query);
  	
    echo "<select name='area' > <option value=''>Select one</option>";
    
    while($nt=mysql_fetch_array($result)){
    echo "<option value=$nt[area_id]>$nt[area_name]</option>";
    }
    echo "</select>"; 
  	echo "<br /><br />";
    echo "<input type=submit value=Submit>";
    echo "</form>";
  }

  mysql_close($con);
?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.