简体   繁体   中英

How to access function in separate PHP page using jquery ajax process?

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 
}

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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM