2017-08-25 1 views
0

私はWeb開発で初めてのプロジェクトを行っています。私はPHPのajaxとjqueryを使用しています。「カートに追加」ボタンをクリックすると、製品がユーザーのカートページから削除されるまで無効にする必要があります

ユーザーが[カートに追加]ボタンをクリックすると、その特定のユーザーに対してそのユーザー(その製品の[カートに追加]ボタン)を無効にする必要がありますカートページから製品を取り除きます。つまり、同じ商品を何度も何度もカートに追加できないようにする必要があります。

('.add_to_cart').on('click dblclick',adding); 
//$("body").on(".add_to_cart","click",adding); 
function adding(e) { 
    e.preventDefault(); 
    var prodid =$(this).attr("id"); 
    var that = $(this); 
    that.off("click dblclick"); 
    $.ajax({ 
     type: "POST", 
     url: "addcart.php", 
     data:{prodid:prodid} 
    }).done(function(msg) { 
     alert(msg); 
    }).always(function() { 
     that.off("click dblclick",adding); 
    }) 

}; 

"init.js"

これは私のjavascriptのファイルであるが、これは "addcart.php"

<?php 
session_start(); 
/*if(isset($_SESSION['islogged'])){ 

    if(!isset($_SESSION['username'])) 
echo "Please log in to add books to your cart"; 
} 
*/ 

require_once 'connect.inc.php'; 
if (isset($_POST['prodid'])) { 
    if (!empty($_POST['prodid'])) { 

    if (!isset($_SESSION['username'])) { 
     echo "Please log in to add books to your cart"; 
    } else { 
     $product_id = $_POST['prodid']; 
     $username = $_SESSION['username']; 
     $query = "SELECT * FROM `books1` where `id`='$product_id'"; 
     $query_run = mysqli_query($link, $query); 
     while ($row = mysqli_fetch_assoc($query_run)) { 
     $productname = $row['name']; 
     $productid = $row['id']; 
     $productauthor = $row['author']; 
     $productpublication = $row['publication']; 
     $productcategory = $row['category']; 
     $productsubcategory = $row['sub_category']; 
     $productborrowalprice = $row['borrowal price']; 
     $productimage = $row['image']; 
     $query1 = "INSERT into `cart`(`user_name`,`p_id`,`p_name`,`p_author`,`p_publication`,`p_category`,`p_subcategory`,`p_borrowalprice`,`p_image`,`qty`)VALUES('$username',$productid,'$productname','$productauthor','$productpublication','$productcategory','$productsubcategory','$productborrowalprice','$productimage',0)"; 
     $result = mysqli_query($link, $query1); 
     if ($result) { 
      echo 'successful'; 
     } else { 
      die(mysqli_error($link)); 
     } 
     } 
    } 
    } 
} 
?> 
+0

お客様のコードでは、クリックとダブルクリックのハンドラを削除して、顧客が「カートに追加」をクリックできなくなりました。それはあなたが望むことをしませんか? – BeetleJuice

+0

ええ!それ仕事をしていませんが、私はページを更新するとき、私はカートに再び同じ製品を追加することができるよ...私は彼がcart.iから製品を削除するまで、その製品のボタンを無効にしたい、これを解決する見当がつかない問題を...助けてください。 – rochelle

+0

は '.php'ページのhtmlですか? – BeetleJuice

答えて

0

あなたはbtn.loadingとbtn.resetを使用して、PHPファイルです。スコープが変化したときに衝突を避けるために変数としてbtnを保存してください。

$('.add_to_cart').on('click dblclick',adding); 
//$("body").on(".add_to_cart","click",adding); 
function adding(e) { 
var cur = $(this).button("loading"); 
    e.preventDefault(); 
    var prodid =$(this).attr("id"); 
    var that = $(this); 
    that.off("click dblclick"); 
    $.ajax({ 
     type: "POST", 
     url: "addcart.php", 
     data:{prodid:prodid} 
    }).done(function(msg) { 
     alert(msg); 
    }).always(function() { 
     that.off("click dblclick",adding); 
     cur.reset() 

    }) 

}; 
+0

ありがとうあなたの答え、先生のため..私は実際にユーザーが自分のカート(IE)から製品を削除積載テキストまで、ユーザーが自分のページを更新しても、彼が持っている必要があることを望みます彼がカートから取り除かれるまで、彼がカートに追加した製品のテキスト「ローディング」。 – rochelle

関連する問題