So with the full script looking like so @simondavies
$(function(){
$('.colors').on('change', function(e){
var option = $("#optionID option:selected").val();
var colour = $("#optionID option:selected").attr("data-selected-colour");
var select = $(".sizes");
var selectedSize;
$.get('/getColourSizes?option_id=' + option + '&colour_id=' + colour, function(data){
select.empty();
$.session.set("optionId", option);
$.session.set("colourId", colour);
// Append select a size option
select.append('<option selected>Please select a size</option>');
var options = $(".sizes");
$.each(data, function(index, value) {
options += '<option value="' + value.size + '" name="selectedSize" data-selected-size="' +value.size+ '">' + value.size + '</option>';
sessionStorage.setItem('selectedSize', $(".sizes option:selected").attr("data-selected-size"));
});
$('.sizes').append(options);
// Ajax call
$("#addToCart").click(function(e) {
var selectedSize = $(this).find("option:selected").text();
var option = $("#optionID option:selected").val();
var colour = $("#optionID option:selected").attr("data-selected-colour");
console.log(selectedSize);
e.preventDefault();
$.ajax({
type: "POST",
url: "/add_to_cart",
data: {
option_id: $.session.get("optionId"),
selectedColour: $("#optionID option:selected").attr("data-selected-colour"),
selectedSize: selectedSize=this.val
},
success: function(data){
}
});
});
});
});
});
In the console I'm getting the following:
array:2 [
"option_id" => "609"
"selectedColour" => "Yellow"
]
So it's not passing the var selectedSize to the ajax