Javascript 创建收藏夹/书签列表

Javascript 创建收藏夹/书签列表,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,我目前正在尝试在我的网站上创建收藏夹/书签列表,该列表的目的是用户可以双击链接或单击图标将链接设置为收藏夹。我遇到的问题是,链接可以附加到列表中两次。有人能告诉我我做错了什么吗 我正在将对象中的linkID和linkContent保存到文件中,然后读取该文件。此外,链接可以在文件中追加两次。如何停止在文件中保存重复项 下面的代码: 函数SaveToFavouriteLinkFile(linkID,linkContent){ var saveFavoriteLinkObject={}; Save

我目前正在尝试在我的网站上创建收藏夹/书签列表,该列表的目的是用户可以双击链接或单击图标将链接设置为收藏夹。我遇到的问题是,链接可以附加到列表中两次。有人能告诉我我做错了什么吗

我正在将对象中的linkID和linkContent保存到文件中,然后读取该文件。此外,链接可以在文件中追加两次。如何停止在文件中保存重复项

下面的代码:

函数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. 谢谢你的指点,我一定会记住:)