Reputation: 155
I'm using the following code to send two ajax requests. One is send on page load which loads the default content and the other one is for the buttons so if a user click a certain button content is changed according to that.
I'm wondering if there is a way to simplify the following code. Any input would be much appreciated.
< script >
$(document).ready(function() {
$.ajax({
type: "POST",
url: "filter.php",
dataType: "html",
data: 'default',
cache: false,
success: function(html) {
$("#responsecontainer").html(html);
alert(response);
}
});
});
$(".myclass").click(function() {
var value = $(this).attr('value');
console.log(value);
$.ajax({
type: "POST",
url: "filter.php",
dataType: "html",
data: '&type=' + value,
cache: false,
success: function(response) {
$("#responsecontainer").html(response);
alert(response);
}
});
}); <
/script>
Upvotes: 0
Views: 35
Reputation: 30899
Consider the following.
$(function() {
function getContainerData(myData) {
$.ajax({
type: "POST",
url: "filter.php",
dataType: "html",
data: myData,
cache: false,
success: function(html) {
$("#responsecontainer").html(html);
console.log(html);
}
});
}
getContainerData("default");
$(".myclass").click(function(event) {
getContainerData('&type=' + $(this).attr("value"));
});
});
This created a function that allows you to enter specific Data to pass in an AJAX call.
You might consider passing in an Object.
{ type: "default" }
Or
{ type: $(this).attr("value") }
This will be translated by the AJAX to the proper POST values.
Upvotes: 3