0

サンプルのショッピングカートアプリケーションを実行しています。私の要件は、匿名ユーザーが[カートに追加]ボタンをクリックしようとしたときに、成功した場合は「login.php」のプロンプトが表示され、ユーザーだけがカートを表示できるようにすることです。以下は、この種のajax呼び出しを使用して資格情報を確認する[カートに追加]ボタンとiamです。ありがとうございます

echo "<input id=add type='button' onClick=\"window.open('cart.php?action=add&id=" . $id . "','_self');\" value='Add to Cart' />";  ====> "add to cart button"

Ajaxコール

$("#login").click(function() {

            var action = $("#form1").attr('action');
            var form_data = {
            username: $("#username").val(),
            password: $("#password").val(),
            is_ajax: 1
        };

        $.ajax({
            type: "POST",
            url: "login.php",
            data: form_data,
            success: function(response)
            {
                if(response == 'success')
                    $("#form1").slideUp('slow', function() {
                        $("#message").html("<p class='success'>You have logged in successfully!</p>");
                    });
                else
                    $("#message").html("<p class='error'>Invalid username and/or password.</p>");    
            }
        });

        return false;
    });
4

1 に答える 1

0

したがって、SRの提案に従って、次のようなものを試す必要があります

ボタンからこの部分を削除します

onClick=\"window.open('cart.php?action=add&id=" . $id . "','_self');\

そして、ここjqueryコードで、これらの変更を行います....または要件に応じて同義語を...

    $("#add").click(function(e) {
        e.preventDefault()          // will stop the form from submitting...        
        var SKU_data = {sku : 12345, quantity:3} //some data related to the product to be sent to some script to add to cart

        var url_to_check_user_session = 'checkAuthentication.php' ;        //which can be the same as action
        $.get(url_to_check_user_session, {username: $("#username").val()}, function(data){
            if(data=='authenticated'){
                $.ajax({        //code to check the login authentication
                    type: "POST",
                    url: "addToCart.php",
                    data: SKU_data,
                    success: function(response)
                    {
                        if(response == 'success')
                            $("#message").html("<p class='error'>Product added to your cart.</p>");
                        else
                            $("#message").html("<p class='error'>Ohh!! something went wrong while adding the product to the cart.</p>");    
                    }
                });}
            else{               // now do the real thing
                $("#form1").slideDown();
                $("#login").click(function() {
                    $.ajax({
                        type: "POST",
                        url: "login.php",
                        data: form_data,
                        success: function(response)
                        {
                            if(response == 'success')
                                $("#form1").slideUp('slow', function() {
                                    $("#message").html("<p class='success'>You have logged in successfully!</p>");
                                });
                            else
                                $("#message").html("<p class='error'>Invalid username and/or password.</p>");    
                        }
                    });
                })
                }
            })

        return false;
    });

お役に立てれば...

于 2012-04-12T07:21:19.100 に答える