Javascript 创建收藏夹/书签列表
我目前正在尝试在我的网站上创建收藏夹/书签列表,该列表的目的是用户可以双击链接或单击图标将链接设置为收藏夹。我遇到的问题是,链接可以附加到列表中两次。有人能告诉我我做错了什么吗 我正在将对象中的linkID和linkContent保存到文件中,然后读取该文件。此外,链接可以在文件中追加两次。如何停止在文件中保存重复项 下面的代码:Javascript 创建收藏夹/书签列表,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,我目前正在尝试在我的网站上创建收藏夹/书签列表,该列表的目的是用户可以双击链接或单击图标将链接设置为收藏夹。我遇到的问题是,链接可以附加到列表中两次。有人能告诉我我做错了什么吗 我正在将对象中的linkID和linkContent保存到文件中,然后读取该文件。此外,链接可以在文件中追加两次。如何停止在文件中保存重复项 下面的代码: 函数SaveToFavouriteLinkFile(linkID,linkContent){ var saveFavoriteLinkObject={}; Save
函数SaveToFavouriteLinkFile(linkID,linkContent){
var saveFavoriteLinkObject={};
SaveFavoriteLinkObject.linkID=linkID;
SaveFavoriteLinkObject.linkContent=linkContent;
//书写
$.ajax({
全球:错,
类型:“POST”,
cache:false,
数据类型:“json”,
数据:({
动作:“写”,
内容:SaveFavoriteLinkObject
}),
url:'php/saveFavoriteLinks.php',
成功:功能(数据){
控制台日志(数据);
},
错误:函数(数据){
警报(JSON.stringify(数据));
}
});
}
$(文档).dblclick(函数(e){
开关(例如target.innerText){
案例“服务器”:
$(“#收藏夹列表”)。追加(“服务器” ”;
SaveToFavouriteLinkFile(“serverBTNFav”,“Server”);
打破
案例“组”:
$(“#收藏夹列表”)。追加(“组” ”;
SaveToFavouriteLinkFile(“groupBTNFav”、“Group”);
打破
案例“用户”:
$(“#收藏夹列表”)。追加(“用户” ”;
SaveToFavouriteLinkFile(“userBTNFav”,“User”);
打破
案例“同步”:
$(“#收藏夹列表”)。追加(“同步” ”;
SaveToFavouriteLinkFile(“syncBTNFav”、“Sync”);
打破
案例“患者名单”:
$(“#收藏夹列表”)。追加(“患者列表” ”;
SaveToFavouriteLinkFile(“患者列表”);
打破
案例“应用程序设置”:
$(“#收藏夹列表”)。追加(“应用程序设置” ”;
SaveToFavouriteLinkFile(“应用设置SBTNFAV”、“应用设置”);
打破
案例“记录”:
$(“#收藏夹列表”)。追加(“日志记录” ”;
SaveToFavouriteLinkFile(“LoggingBTNFav”、“Logging”);
打破
}
});代码>请尝试以下操作:
$linkexists = false;
foreach ($json as $obj) {
if ($obj['favouriteLinkContent'] == $favouriteLink) {
echo json_encode("HELLO");
$linkexists = true;
}
}
if(!$linkexists){
$json[] = array("favouriteLinkContent" => $favouriteLink,
"favouriteLinkID" => $favouriteLinkID);
file_put_contents($file, json_encode($json));
}
因为每次遇到一个没有相同链接内容的$obj时,您都会插入它(因此,如果前两个$obj对象有不同的对象,您将插入相同的最喜爱对象,直到遇到一个具有相同内容的对象)在saveFavoriteLinks.php中,确保检查它是否已经存在,这是一个后端问题,而不是jquery/javascript,php中有一个问题code@JeremyC. 我已经在我的问题中添加了我的PHP代码,你能看一下吗?这不是保存你最喜欢的代码,这是在我阅读其余内容之前阅读它们的地方,这里有一个指针:如果你在PHP中进行比较,试着使用tripple comparator而不是double(这是比较相同类型对象的最佳实践)因此,不要使用$obj['FavoriteLinkContent']==$FavoriteLink,而是使用$obj['FavoriteLinkContent']==$favouriteLink@JeremyC. 谢谢你的指点,我一定会记住:)