quando sputi fuori la lista delle castegorie immagino che tu dal db sappia già che tipodi categoria è:
cat normale
non categorizzata
tipo 1
tipo 2
tipo 3
metti ogni categoria dentro un tag li dove imposti l'attributo rel = tipologia di categoria
codice:
<ul id="categories">
<li rel="uncategorized">nome categoria
<li rel="tipo1">nome categoria
<li rel="tipo2">nome categoria[/list]
utilizzando questo principio potresti già avere a disposizione una base per fare i filtri.
il js non dovrà così essere creato al volo ma sarà sempre e solo un' unica funzione il cui
perno di funzionamento sarà
codice:
<script>
function filterCatsBy(relFilter)
{
var catsUL=document.getElementById('categories');
for (var n=0;n < catsUL.childNodes.length; n++)
{
var catLI=catsUL.childNodes[n];
if(catLI.nodeType == 1)
{
catLI.style['display']=(catLI.getAttribute('rel') == relFilter)?'':'none';
}
}
}
</script>
mentre la select che gestirà il richiamo al filtro sarà
codice:
<select size="1" onChange="filterCatsBy(this.options[this.selectedIndex].value)">
<option value="uncategorized">uncategorized</option>
<option value="tipo1">tipo1</option>
<option value="tipo2">tipo2</option>
</select>
questo è un esempio completo
codice:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
<script>
function filterCatsBy(relFilter)
{
var catsUL=document.getElementById('categories');
for (var n=0;n < catsUL.childNodes.length; n++)
{
var catLI=catsUL.childNodes[n];
if(catLI.nodeType == 1)
{
catLI.style['display']=(catLI.getAttribute('rel') == relFilter)?'':'none';
}
}
}
</script>
</head>
<body>
<select size="1" onChange="filterCatsBy(this.options[this.selectedIndex].value)">
<option value="uncategorized">uncategorized</option>
<option value="tipo1">tipo1</option>
<option value="tipo2">tipo2</option>
</select>
<ul id="categories">
<li rel="uncategorized">nome categoria 1
<li rel="tipo1">nome categoria 2
<li rel="tipo2">nome categoria 3[/list]
</body>
</html>