AJAX múltiplo solicita funções combinadas em um?
Tenho praticamente a mesma chamada de solicitação do Ajax, mas preciso expandi-la para ser mais genérica
Veja o código de exemplo:http: //jsfiddle.net/2b8gR/6
Eu o trabalho para a Página A e quero usá-lo para a Página B, C, D, etc ... mas não quero reescrever a função para cada nova solicitação do Aja
A maior parte do código permanecerá o mesmo, exceto:
input próximo / anterior (page_a_next torna-se page_b_next)display page div (display_page_a_page se torna display_page_b_page)display page number div (display_page_a_number torna-se display_page_b_number)ajax solicita o nome da página do URL (url: 'page_a.php? page =' + currentPageA, torna-se url: 'page_b.php? page =' + currentPageB,)e assim por diante
Como faço para que a chamada e os elementos do Ajax sejam mais genéricos, para que eu não precise escrever essa solicitação várias vezes?
NOTA: Eu preciso ser capaz de acompanhar cada página (A, B, C, etc ...) exibida no momento. E sim, todos estes estão na mesma página
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','');
}
});
}