I developed a shopping cart using jquery, ajax and json. It is working fine on local server in chrome. But when I run on server using chrome it is not doing anything; but running on firefox.

It is not running first time, but when I came back from another page then it runs.
http://www.scsprojectreports.com/product/coffee-berry-borer.php

JS CODE

<script>
function add_to_cart(cart_qty, cart_itemid)
{

    if(cart_qty<=0 || isNaN(cart_qty))
    {
    my_msg('Error', 'Incorrect Quantity');
    }
    else
    {
        $.ajax({  
            type: "POST",  
            url : "shopping_cart.php",  
            data: "cart_itemid="+cart_itemid+"&cart_qty="+cart_qty,
            success: function(json)
            {
                $("#shopping_cart").html('');
                var sub_total=0;
                $.each($.parseJSON(json), function(idx, obj) {
//              alert(obj.product_name);
                $("#shopping_cart").append(
                  '<div class="w50">'+obj.qty+' x </div>'+
                  '<div class="link"><a href="sub-category-detail-view.html">'+obj.product_name+'</a></div>'+
                  '<div style="clear:both"></div>');
                  sub_total += (obj.price * obj.qty);
//                alert(sub_total);
                });
                $("#sub_total").html('Sub-Total: Rs. '+sub_total);
                my_msg('Notification', 'Cart Updated Successfully !!');
                $("#msg").html('');
            },
            beforeSend: function()
            {
            $("#msg").html('<img src="loading.gif" align="absmiddle" alt="Loading...">');
            }
        }); 
    }

}
</script>

PHP CODE

<div style="background: #F7F7F7; border: 1px solid #DDDDDD; padding: 10px;">Qty:
<input type="text" name="qty" id="qty" size="3" value="1">
<a class="button" style="cursor:pointer;" onClick="add_to_cart($('#qty').val(),'<?php echo $fetchline['id'];?>')"><span>Buy</span></a>
<span id="msg" style="text-align:center; padding:6px; color:#EB679F; font-weight:bold; font-size:14px;"></span>
<br>
</div>

Check Live
http://www.scsprojectreports.com/product/coffee-berry-borer.php

You set type: "POST" but you're sending data:"cart_itemid="+cart_itemid+"&cart_qty="+cart_qty as if it were "GET" try replacing the type or changing how data is sent.

On another note, if you're already using jQuery, take a look at .post() in the documentation for a shortand ajax post request with callbacks.

Member Avatar for diafol

If you're retrieving JSON data, then $.getJSON may be more appropriate. However, it uses 'GET', so not appropriate if you are changing anything on the server e.g. manipulating DB data - for that, you should use 'POST' - possibly $.post as a shorthand to the more general $.ajax, as mentioned by Fernando_4.

I changed type; still not working..Actually, its not responsing anything.. Fernando_4 or diafol help me to rewrite my code.

Member Avatar for diafol

still not working

heh heh -welcome to the world of ajax! You've changed something, but we don't know what. Post your updated cade. Also it could be your php code - try running it as stand alone with hard coded POST or GET values (whichever you're using now). If using $.ajax you need to declare a datatype as json.

I changed type: "POST" to type: "GET"
If use datatype:json
then how I can use data: "cart_itemid="+cart_itemid+"&cart_qty="+cart_qty
which I'm requesting.

Member Avatar for diafol

I checked the link - it seems to be working?

Actually.. its working on some PCs but not on all.. I cleared all cookies on my PC still same problem..

Member Avatar for diafol

Hopw about clearing the cache?

I cleared all cache of my chrome browser .. still same problem..

Member Avatar for diafol

Unfortunately, I can't seem to replicate the issue. Anybody else?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.