Si quiere hacerlo con PHP, creo que deberías modificar estas lineas para dejarlas así:
Código PHP:
Ver originalecho '<li><a href="index.php?categoria_id='.$value['categoria_id'].'">'.$value['categoria_name'];
//echo '<li><a href="index.php?' . $value['categoria_id'] . '/">' . $value['categoria_name'] . '</a>';
generate_menu($key);
//call function again to generate nested list for subcategories belonging to this category
echo '</a></li>';
Creo que debería funcionar :)
Por cierto, no confundas JAVA con JavaScript, son cosas totalmente distintas.