Kolega niksav,
Problem sa izgledom onoga sto ce videti dizaner resavas tako sto na
predvidjeno mesto umetnes ono sto ce biti vraceno kao rezultat. Posto
se rezultati vraceni Ajax pozivom smestaju u neki div, tu umetni parce
HTML-a koje ce biti prikazano
<div id="blabla">
<table><tr><td>insert here</td></tr></table>
</div>
Posle Ajax poziva, doticni Div bice update-ovan sadrzajem
$('blabla').innerHTML = <response ajax poziva>;
Za dinamicko pravljenje tabela mozes da iskoristis "seljacko" resenje
sa jednim var-om koji ce da predstavlja "template"
var table_row = "<tr><td>{IME}</td><td>{PREZIME}</td></tr>";
i onda da iteriras po vracenim rezultatima (koji je npr Array
enkodovan sa JSON iz PHP-a, a ovamo ga dekodiras u sa eval) i menjas
ove placeholdere. Losa strana ovoga je ako imas veeeeliku tabelu moze
se desiti da se browser zakuca na par sekundi, a za to vreme procesor
da bude na 100%.
Bolje resenje je da iskoristis Builder klasu iz Script.aculo.us gde
ces dinamicki da pravis tabele, select box-ove i druge lepe stvari.
Anyway, ajax aplikacije su i jednostavnije za pravljenje ako izbacis
opciju "sta ako klijent nema najnoviji browser". Ako lepo na
serverskoj strani razdvojis Data Layer od Presentation Layer, stvari
mogu da budu prilicno jednostavne. Neka ti jedna funkcija vraca kao
rezultat upita neki Array. Taj Array prosledi templejt klasi (ako
koristis Smarty (a znam da ga ne koristis :-)) to bi se svodilo na
prost Assign, a u okviru Smarty-ja napravis sa njim sta hoces). Time
si resio problem server side generisanja HTML-a.
Ako hoces sa istim rezultatima da se igras na klijentskoj strani,
pozovi tu funkciju, vrati ti Array, JSON encode i posaljes kao odgovor
na Ajax. Onda to prihvatis i Javascript funkcijom generises na klijent
strani ono sto zelis da prikazes.
Sve to jako fino fercera, samo treba malo vise discipline prilikom
rada.
P.S. Vidim da Prototype ima (od skoro) Template klasu:
http://www.prototypejs.org/api/template