Javascript 防止向购物篮中添加重复项目
我已经在PHP表单中创建了一个篮子,用户可以在其中插入他们选择的电影 问题: 如何防止将重复电影添加到此篮(选定电影列表)中 这是我的代码:(对不起,我没有粘贴所有的代码,因为它太长了)Javascript 防止向购物篮中添加重复项目,javascript,php,shopping-cart,Javascript,Php,Shopping Cart,我已经在PHP表单中创建了一个篮子,用户可以在其中插入他们选择的电影 问题: 如何防止将重复电影添加到此篮(选定电影列表)中 这是我的代码:(对不起,我没有粘贴所有的代码,因为它太长了) 精选电影 你的名单是空的 var master_basket=新数组(); $(文档).ready(函数(){$(“输入[id='selectType'])).change(函数()){ //自动完成部分 $('#btnMove')。在('click',函数(d)上{ 主控台日志(主控台篮); d、 预防默认
精选电影
你的名单是空的
var master_basket=新数组();
$(文档).ready(函数(){$(“输入[id='selectType'])).change(函数()){
//自动完成部分
$('#btnMove')。在('click',函数(d)上{
主控台日志(主控台篮);
d、 预防默认值();
所选变量=$(“#q”).val();
if(selected.length==0){
警惕(“无需移动”);
d、 预防默认值();
}否则{
var obj={
“电影名称”:选中,
“电影信息”:”
};
addToBasket(obj);
}
$(“#q”).val(“”);
});
});
功能addToBasket(项目){
主推篮(项目);
showBasketObjects();
}
函数showBasketObjects(){
$(“#篮子内容”).empty();
美元。每个(主篮子,功能(k,v){
$(“#basket_content”)。追加(“+v.movie_name+”);
});
我个人不建议使用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;
}
}
尝试将函数修改为
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);
}
}
函数addToBasket(项){
变量ifExists=false;
对于(i=0;i
感谢您的帮助,我尝试了您的代码,但当我单击“添加到列表”按钮时,它不会将电影名称添加到篮中,而且我在控制台中看到,我第一次插入电影名称时,它会显示数组[对象]
,如果我第二次插入相同的电影,我会看到数组[对象,对象]
在控制台中,…@mOna你能提供JSFIDLE吗?@mOna因为你正在将对象传递给arrayI,而arrayI没有使用fiddle。我如何将我的代码放在那里并与你共享?只需注册,你就可以共享你的示例工作代码了
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);
}
}