Log in

View Full Version : Problem with jQuery & AJAX GET



denhamd2
12-15-2012, 01:45 PM
Hi,

I'm using jquery to make an Ajax GET call. Basically on my page I have 3 buttons to add products. What I want is for all 3 to be added to my shopping cart page at once. It works fine when I don't have a redirect and go to the cart page manually. The problem is when I add the redirect code, it only adds the first product. Any help on this problem would be much appreciated.



var dlink1 = $('a.addlink1').attr('href');
var dlink2 = $('a.addlink2').attr('href');
var dlink3 = $('a.addlink2').attr('href');


$('a.submitbutton').click(function() {

$.ajax({
type: 'GET',
beforeSend: function() {

if(dlink1 != '') { $.get(dlink1) }
if(dlink2 != '') { $.get(dlink2) }
if(dlink3 != '') { $.get(dlink3) }

},
success: function() {
window.location = '/cart.php';
}
});


return false;
});

jscheuer1
12-16-2012, 05:33 AM
Putting 3 gets inside another get makes little sense. Especially since the outer get isn't getting anything. I'm surprised it does anything at all. Are you sure there's not other code on the page that's causing it to change to the cart page? Or it might just be that the code is erroring out, so the form submits normally. But then again, the way you have the code there, it looks like the click event is being assigned to an a tag. So maybe it's firing normally as a link. Hard to tell without seeing the whole page.

Anyways, make sure you don't have other code that's loading up the cart page and get rid of it if it's there and try this (replaces all of the code in your post):


$('a.submitbutton').click(function() {
var urls = 0;

var dlink1 = $('a.addlink1').attr('href');
var dlink2 = $('a.addlink2').attr('href');
var dlink3 = $('a.addlink2').attr('href');

if(dlink1 != '') { ++urls; }
if(dlink2 != '') { ++urls; }
if(dlink3 != '') { ++urls; }

function success(){
if(--urls == 0){window.location = '/cart.php';}
}

if(dlink1 != '') { $.get(dlink1, success); }
if(dlink2 != '') { $.get(dlink2, success); }
if(dlink3 != '') { $.get(dlink3, success); }


return false;
});

The browser cache may need to be cleared and/or the page refreshed to see changes.

If you want more help, please include a link to the page on your site that contains the problematic code so we can check it out.