防止向篮子添加重复的项目

时间:2014-11-10 10:32:21

标签: javascript php shopping-cart

我在PHP表单中创建了一个篮子,用户可以在其中插入所选的电影。

问题:

如何防止向此购物篮添加重复的电影(选定的电影列表)?

这是我的代码:(抱歉,我没有粘贴所有代码,因为它太长了)

<div id="basket">
   <div id="basket_left">
       <h4>Selected Movies</h4>
       <img id="basket_img" src="http://brettrutecky.com/wp-content/uploads/2014/08/11.png" />
   </div>
   <div id="basket_right">
       <div id="basket_content">
          <span style="font-style:italic">Your list is empty</span>
       </div>
   </div>
</div>

<script type="text/javascript">
var master_basket = new Array();
$(document).ready(function () {$("input[id='selectType']").change(function(){

 // AUTO_COMPLETION PART

$('#btnMove').on('click', function(d) {
    console.log(master_basket);
    d.preventDefault();
    var selected = $("#q").val();
    if (selected.length == 0) {
        alert("Nothing to move.");
        d.preventDefault();
    } else {
        var obj = {
            "movie_name":selected,
               "movie_info": ""
          };
        addToBasket(obj);
    }
    $("#q").val("");
  });
});

function addToBasket(item) {
       master_basket.push(item);
       showBasketObjects();
    }
function showBasketObjects() {
       $("#basket_content").empty();
       $.each(master_basket, function(k, v) {
             $("#basket_content").append("<div class='item_list'>" + v.movie_name + "<a class='remove_link' href='" + k + "'><img width='20' src='http://i61.tinypic.com/4n9tt.png'></a></div>");
       });

2 个答案:

答案 0 :(得分:1)

我个人不会建议使用javascript来防止这种重复的事情,因为任何人都可以修改它并手动导致这个问题,你应该防止在php和javascript中重复。

无论如何要在脚本中完成你想要的东西,我认为这足以修改你的部分代码:

var master_basket = new Array();
selectedMovies = {};

  ///////

} else {
    var obj = {
        "movie_name":selected,
           "movie_info": ""
      };
    if(!selectedMovies.hasOwnProperty(selected)){
        addToBasket(obj);
        selectedMovies[selected] = obj;
    }
}

答案 1 :(得分:0)

尝试将您的功能修改为

 function addToBasket(item) {

    var ifExists = false;

    for (i = 0; i < master_basket.length; ++i) {
      if(master_basket[i] == item)
        ifExists = true;

    }


    if(!ifExists)
       master_basket.push(item);

    }
}