The way to do this (or the way I do it) is that I bind ajax calls to the pagination links. The links have the url built-in and know what page they are referring to.
e.g.
<a class="pager" href="/ajax_pages/get_results.php?page=3"> 3 </a>
Now you can intercept the clicks to these links using the jquery live function
$(function() {
$('a.pager').live('click',function() {
var url = $(this).attr('href');
$('#destination').load(url);
}
}
Since you're using 'live', you don't have to bind the newly generated HTML manually. And so your links will be ready to go right away.
Then all you have to do is generate the offset value based on the requested page and limit (which your backend service should know).
The alternative method is very close, but requires more work in javascript. Have the service that your pager calls return json encoded data. Your callback function will then have to populate your page with this data and then update your pagination links so that they work correctly.
This may be the more elegent solution than blowing out the entire form every time, but does require more work. It is unlikely that it will be a noticeable difference.