0

I have a problem with my code. I am studying jquery ajax. And I have a difficulty in it. I am creating an 'add to cart' function in my simple e-commerce site. And I am doing this with database interaction. Here's what I did so far.

Here's my PHP part

$product_id =   $_GET['product'];
....
<input type="hidden" name="cart_product_id" id="cart_product_id" value="<?php echo $product_id; ?>" />
<input type="hidden" name="cart_user_id" id="cart_user_id" value="<?php echo $_SESSION['member']; ?>" />

Here's my javascript part

function notification_message(type) {
    var confirmation = '';

    if(type == 'cart') {
        confirmation = '#cart_confirm';
    } else {
        confirmation = '#wishlist_confirm';
    }

    $(confirmation).dialog({
        resizable: false,
        height: 220,
        modal: true,
        draggable: false,
        buttons: {
            "Yes": function() {
                if(type == 'cart'){
                    add_cart();
                } else {
                    add_wishlist();
                }
            },
            "No": function() {
                $( this ).dialog( "close" );
            }
        }
    });

}

//this is the main function I need to process
function add_cart(){
    var cart_product_id = $("#cart_product_id").val();
    var cart_user_id = $("#cart_user_id").val();
    var url_add_cart = '<?php echo $_SERVER['DOCUMENT_ROOT'].'ahm/secure/aroma/aroma_shop.php'; ?>';

    console.log(url_add_cart);

    $.ajax({
        type: 'POST',
        url: url_add_cart,
        data: { user_id: cart_user_id, product_id: cart_product_id },
        dataType: 'json',
        success: function(d) {
            console.log(d);
        }
    });
}

function add_wishlist(){
    alert('wishlist');
}

$('#register_user').click(function(){
    $('#failed').dialog('close');
});

function failed() {
    $("#failed").dialog({
        resizable: false,
        height: 220,
        modal: true,
        draggable: false,
    });
}

$(document).ready(function(){
    $("#mycart").click(function(){
        var product_id = $('#mycart').data('cart-id');
        var member_id = '<?php echo $_SESSION[member]; ?>';
        var type = 'cart';
        notification_message(type);
    });

    $("#mywishlist").click(function(){
        var product_id = $('#mywishlist').data('wishlist-id');
        var member_id = '<?php echo $_SESSION[member]; ?>';
        var type = 'wishlist';

        if (member_id == '') {
            failed();
        } else {
            notification_message(type);
        }
    });
});

Now here's my separate PHP file that contains the sql query it contains.

function get_cart($user_id) {
    $query  = mysql_query("SELECT * FROM product_cart WHERE user_id = ".$user_id."");
    $row    = mysql_fetch_array($query);

    return $row;
}

function count_cart($user_id) {
    $query = mysql_query("SELECT COUNT(*) AS cart_total FROM product_cart WHERE user_id = ".$user_id."");
    $row   = mysql_fetch_array($query);

    return $row['cart_total'];
}
//now, how can I access here the variable I set in the PHP?


function insert_cart(){
    //this should be the query part but I dont know how to access the variable 
}

1 Answer 1

2

In ajax call, you can pass some variable with the url, say url_add_cart+"type=insert_cart"

Then at start of PHP, check-

if(isset($_GET['type'] == "insert_cart"))
   echo insert_cart();

Now, in that function just get your variables as- $_POST['user_id'] and $_POST['product_id']; do the processing and return whatever you want to return.

Note, return your array after json encoding it- echo json_encode($result_array) - also, use echo not return; since ajax call just get the contents of the url (just like curl)

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.