La decisione pone sempre i suoi problemi.
Cioe' Ajax e javascript sono definiti assolutamente non accessibili, quindi se devi fare un sito ad alta accessibilita' dappi che js+ajax non va bene.
D'altro canto js e ajax aumentano a dismisura l'usabilita' del sito quindi puoi inserire molteplici funzionalita' diverse in un'unica pagina senza costringere l'utente a noiosi redirect.
Qui dipende dal rapporto accessibilita' / usabilita' che vuoi dare al sito, sinceramente io veco che oramai anche il borwser piu' marcio x smart phone gestisce i js per cui alla fine secondo me ajax rimane una soluzione sempre valida.
Ovviamente devi sempre considerare che l'utente potrebbe avere js disabilitato, anche se ormai sono davvero in pochi, e quindi il tuo sito nn gli funzionerebbe.
Tuttavia se pensi a quanti siti utlizzano js e ajax vedrai che alla fine tutti i discorsi fatti sull'accessibilita' vanno a frantumarsi contro l'enorme diffusione di queste tecniche di interazione.
Dal canto mio io preferisco usare ajax proprio perche' mi evita di dover gestire tutta la parte di redirect etc. E una buona progettazione ti consente di riutillzzare tranquillamente il codice php anche per funzionalita' ajax differenti. Poi considera che alla fine puoi anche usare gli script php fatti x ajax con i form normali senza ajax.
considera questo
Codice PHP:
<form name="mioform" action="mioscript.php" method="post" onsubmit="funzioneAjax(this);return false">
<input type="hidden" name="noscript" value="1" />
campi vari
</form>
<?
// il file mioscript.php
if( $_REQUEST["campo1"] )
{/*...controllo e setta valore*/}
// fine controlli e settaggio vars
// esecuzione salvataggi/update/select o altro
// Forgiatura della risposta in formato richiesto
if( $_POST["noscript"] )
{
// echo o redirect a pagina di uscita
}
else
{
// risposta in formato xml o json per ajax
}
?>
Nella funzione js ignori il campo noscript e non lo invii allo script.
QUindi se l'utente ha disabilitato js il form viene inviato come submit normale e verra' intercettato il campo noscript e quini lo script gestira' la risposta come normale script php con reidirect oppure echo del risultato.
Se invece hai ajax il campo no script non lo fai inviare come parametro e lo script rispondera' con il formato da te scelto alla funzione ajax di callback.
QUindi con questa tecnica puoi avere un sito altamente usabile ed accessibile perche' anche se l'utente non usa js i form verranno inviati lo stesso.
Ovviamente se nn usa js non potra' nemmeno gestire pannelli o animazion etc ma questo e' un altro problema. Eventualemente puoi fare 2 versioni una con ajax e una senza e nei form imposti quel parametro di controllo.
Le soluzioni sono tantissime e differenti. io preferisco pero' imporre i js sul sito e con iltag <noscript></noscript> Visualizzo il sempre il messaggio "Devi abilitare javascript per poter accedere alle funzionalita' del sito". Visto che l'utenza che non usa js e' talmente poca nei mei sistemi/siti che e' trascurabile.
Quindi devi decidere . Se ti vuoi cimentare puoi sempre provare con jquery cosi' eviterai di perdere un sacco di tempo a scrivere codice js per gestire ajax che non e' cosi' immediato come sembra proprio perche' e' completamente asincrono.
In bocca al lupone.