Si todos van a parar a la misma url de AJAX pues envia todo, aunque no contenga datos, o si te lo quieres currar mas, mediante JS vas construyendo los parametros de ajax
miweb.com/proyecto/?param1=blabla¶m2=¶m3=hola
por ejemplo que aunque param2 no tenga datos, lo envias y en el backend haces que la query se vaya construyendo a medida en plan
Pongo en php por pnerlo en algo
$query = 'select * from tabla '
$where = "";
if ( isset($_GET['param1']) && strlen(trim($_GET['param1'])) > 0) {
if (strlen($where) == 0) {
$query.=" WHERE campo_param1=$_GET['param1']";
} else {
$query.=" AND campo_param1=$_GET['param1]";
}
if ( isset($_GET['param2']) && strlen(trim($_GET['param2'])) > 0) {
if (strlen($where) == 0) {
$query.=" WHERE campo_param2=$_GET['param2']";
} else {
$query.=" AND campo_param2$_GET['param2']";
}
Y asi poco a poco vas construyendo la query para filtrar por los campos que te han ido rellenando
Obviamente controla que no te puedan hacer SQL injections y etc...
Si las urls son diferentes, pues tendras que mirar que orden tiene que usar el usuario. En mi caso, lo primero que filtraban los usuarios era el año, de ahi yo les rellenaba el select de proyectos con los proyectos de ese año, y como opcional podian añadir al filtro la tipologia del proyecto.
Una vez se habia cargado el select con los proyectos, seleccionaban un proyecto, y entonces se enviaba un ajax diferente que obtenia los subproyectos del proyecto con id = XYZ, se cargaban esos datos en el select de subproyectos.
Si el usuario seleccionaba un subproyecto, se volvia a enviar el mismo ajax que antes con ademas el id del subproyecto.
Esto obtenia la informacion del subproyecto que se mostraba en la pantalla.
Horas estipuladas de cada fase del proyecto y las personas asociadas, con el grupo, y las horas que le dedicaban