Na php stranici imam formu i u njoj combo boxove za izbor kategorija.
Potrebno mi je da kad korisnik izabere glavnu kategoriju,da se drugi combo automatski promeni da prikazuje samo podkategorije izabrane glavne kategorije,kad se izabere drugi combo da se promeni treci.......
Ja sam uspeo ovo da dobijem za prva dva comboa ali nece da radi za ostale.
Evo kodova:
Ovo su comboi:
Code:
<select name="maintag" id="maintag" onchange="showUser(this.value)">
</select>
<select name="subtag" id="maintag" > <!--Znaci ovde bi trebalo isto onchange event ali da popunjava ovaj donji combo -->
</select>
<select name="subtag1" id="maintag">
</select>
<select name="maintag" id="maintag" onchange="showUser(this.value)">
</select>
<select name="subtag" id="maintag" > <!--Znaci ovde bi trebalo isto onchange event ali da popunjava ovaj donji combo -->
</select>
<select name="subtag1" id="maintag">
</select>
Ovo je JS:
Code:
var xmlHttp
function showUser(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="get.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("subtag").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
var xmlHttp
function showUser(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="get.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("subtag").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
A ovo je php koji daje sadrzaj donjeg comboa:
Code:
<?php
$q=$_GET["q"];
//$con = mysql_connect('localhost', 'root', '1tofast');
//if (!$con)
//{
// die('Could not connect: ' . mysql_error());
// }
//mysql_select_db("aukcija", $con);
include '../config.php';
$sql="SELECT node.name, (COUNT(parent.name) - (sub_tree.depth + 1)) AS depth
FROM category AS node,
category AS parent,
category AS sub_parent,
(
SELECT node.name, (COUNT(parent.name) - 1) AS depth
FROM category AS node,
category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.name = '$q'
GROUP BY node.name
ORDER BY node.lft
)AS sub_tree
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.lft BETWEEN sub_parent.lft AND sub_parent.rgt
AND sub_parent.name = sub_tree.name
GROUP BY node.name
HAVING depth = 1
ORDER BY node.lft;";
$result = mysql_query($sql);
?>
<option style="background-color:#dcdcc3;" value="" selected>-- Select Sub tag--</option>
<?
while($row = mysql_fetch_object($result))
{
echo '<option value="'.$row->name.'">'.$row->name.'</option>';
}
echo "</table>";
//mysql_close($con);
?>
<?php
$q=$_GET["q"];
//$con = mysql_connect('localhost', 'root', '1tofast');
//if (!$con)
//{
// die('Could not connect: ' . mysql_error());
// }
//mysql_select_db("aukcija", $con);
include '../config.php';
$sql="SELECT node.name, (COUNT(parent.name) - (sub_tree.depth + 1)) AS depth
FROM category AS node,
category AS parent,
category AS sub_parent,
(
SELECT node.name, (COUNT(parent.name) - 1) AS depth
FROM category AS node,
category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.name = '$q'
GROUP BY node.name
ORDER BY node.lft
)AS sub_tree
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.lft BETWEEN sub_parent.lft AND sub_parent.rgt
AND sub_parent.name = sub_tree.name
GROUP BY node.name
HAVING depth = 1
ORDER BY node.lft;";
$result = mysql_query($sql);
?>
<option style="background-color:#dcdcc3;" value="" selected>-- Select Sub tag--</option>
<?
while($row = mysql_fetch_object($result))
{
echo '<option value="'.$row->name.'">'.$row->name.'</option>';
}
echo "</table>";
//mysql_close($con);
?>
U sustini php je uvek isti,samo u js-u se menja vrednost parametra koji se prosledjuje i ime elementa u koji se stavlja rezultat.
Pokusao sam sa jos jednim js-om za drugi combo ali nece.
POmagajte!
Moj kung-fu je bolji od tvog kung-fua.