Poate e cazul sa fiu eu mai explicit, deoarece se pare ca nu am formulat destul de clar intrebarea.
Eu lucrez cu jquery. Codul js este separat, intr-un fisier. In acest fisier am functiile js.
Folosind $.post, $.get, $.getJSON in cadrul functiei js, fac apel la o functie anume din php care imi returneaza o valoare. Ceva de genul:
Cod: Selectaţi tot
function functia1(tip, mod){
$.post(ajax.php, 'function=nume_functie1&arg1='+tip+'&arg2='+mod, function(rezultat){
//fa ceva cu rezultat
})
}
in acest moment se face cererea catre fisierul ajax.php, setand parametri din POST cu urmatoarele valori $_POST["function"]=functie1, $_POST["arg1"]=valoarea lui tip, $_POST["arg2"]=valoarea lui mod.
In fisierul ajax.php se afla codul de care am vorbit in primul post, adica:
Cod: Selectaţi tot
if($_REQUEST){
$function = $_REQUEST["function"];
$arg1 = $_REQUEST["arg1"];
$arg2 = $_REQUEST["arg2"];
$arg3 = $_REQUEST["arg3"];
switch($function){
case "nume_functie1": echo nume_functie1($arg1, $arg2); break;
case "nume_functie2": echo nume_functie2($arg1); break;
case "nume_functie3": echo nume_functie3($arg1, $arg2, $arg3); break;
case "nume_functie4": echo nume_functie4($arg1,arg2); break;
}
}
function nume_functie1($arg1, $arg2){
....
return $rezultat;
}
...
function nume_functie4($arg1,arg2){
....
return $rezultat;
}
Tot in ajax.php se afla si functiile apelate.
Formula folosita de mine, functioneaza excelent, insa ce nu imi place este ca trebuie ca pentru fiecare functie nou, sa adaug un rand si in switch, care sa faca redirectarea catre functia adecvata.
La un moment dat ma gandeam la o formula cu eval(), insa din cate am inteles nu e tocmai indicata folosirea lui eval() in aceste cazuri,
Cu eval as avea ceva de genul:
Cod: Selectaţi tot
if($_REQUEST){
$function = $_REQUEST["function"];
$arg1 = $_REQUEST["arg1"];
$arg2 = $_REQUEST["arg2"];
$arg3 = $_REQUEST["arg3"];
$functia = $_REQUEST["function"]."(".$_REQUEST["arg1"].", ".$_REQUEST["arg2"].", ".$_REQUEST["arg3"].")";
eval("\$functia = $functia;");
echo $functia;
}
function nume_functie1($arg1, $arg2){
....
return $rezultat;
}
...
function nume_functie4($arg1,arg2){
....
return $rezultat;
}
In acest caz nu ar mai fi necesar sa adaug nominal toate functiile care urmeaza sa fie returnate catre ajax.
Deci, in lumina noilor detalii, are cineva ceva comentarii si sfaturi?