I have pretty much the same Ajax Request call but I need to expand it to be more generic
See example Code: http://jsfiddle.net/2b8gR/6/
I have it working for Page A and want to use it for Page B, C, D, etc... but don't want to rewrite the function for every new Ajax request.
Most of the code will remain the same except:
- input next/prev (page_a_next becomes page_b_next)
- display page div (display_page_a_page becomes display_page_b_page)
- display page number div (display_page_a_number becomes display_page_b_number)
- ajax request url page name (url: 'page_a.php?page='+currentPageA, becomes url: 'page_b.php?page='+currentPageB,)
and so forth.
How do I make the Ajax call and elements more generic so I don't have to write this request multiple times?
NOTE: I need to be able to keep track of each page (A, B, C, etc...) it's currently displaying. And yes all of these are on the same page
HTML:
<!-- Page A -->
<div>
<span>Page A</span>
<input id="page_a_next" name="page_a_next" type="button" value="Next" data-inline="true" />
<input id="page_a_prev" name="page_a_prev" type="button" value="Previous" data-inline="true" />
</div>
<div id="display_page_a_page" name="display_page_a_page">
</div>
<div id="display_page_a_number" name="display_page_a_number">
</div>
<!-- Page B -->
<div>
<span>Page B</span>
<input id="page_b_next" name="page_b_next" type="button" value="Next" data-inline="true" />
<input id="page_b_prev" name="page_b_prev" type="button" value="Previous" data-inline="true" />
</div>
<div id="display_page_b_page" name="display_page_b_page">
</div>
<div id="display_page_b_number" name="display_page_b_number">
</div>
JS:
var currentPageA=1;
var totalPageA=113;
loadPageA();
$("#page_a_next, #page_a_prev").click(function(){
currentPageA = ($(this).attr('id')=='page_a_next') ? currentPageA + 1 : currentPageA - 1;
if(currentPageA<=0) {
currentPageA=1;
$('#page_a_prev').attr('disabled','disabled');
} else if(currentPageA==114) {
currentPageA=113;
$('#page_a_next').attr('disabled','disabled');
} else {
loadPageA();
}
});
function loadPageA(){
$('#page_a_next').attr('disabled','disabled');
$('#page_a_prev').attr('disabled','disabled');
$.ajax({
url: 'page_a.php?page='+currentPageA,
type: 'POST',
error : function (){ alert('Error'); },
success: function (data) {
$('#display_page_a_number').html(currentPageA + ' of ' + totalPageA);
$('#display_page_a_page').html(data);
$('#page_a_next').attr('disabled','');
$('#page_a_prev').attr('disabled','');
}
});
}