Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >交替/显示按钮取决于PHP和DB条件

交替/显示按钮取决于PHP和DB条件
EN

Stack Overflow用户
提问于 2016-02-26 12:44:27
回答 1查看 79关注 0票数 1

我有一个叫Add to Favourites的按钮。当单击此按钮时,它将执行一个inserts查询,其中的数据进入数据库。下面是存储数据的表:

favourites表:

代码语言:javascript
运行
AI代码解释
复制
   id
   favourited_who
   favourited_by

用户只能被登录用户收藏一次。例如,如果Alice登录,那么Alice只能喜欢Freddy一次,如果Freddy已经是热门,那么add to favourites按钮将被remove from favourites按钮所取代。

下面是我的PHP查询,它向DB发送数据:

代码语言:javascript
运行
AI代码解释
复制
if (isset($_POST['addfriend'])) { 
    $fav_request    = $_POST['addfriend'];
    $favourited_who = $user; // u variable
    $favourited_by  = $username; // logged in user

    $q = mysqli_query ($connect, "SELECT * FROM favourites");
        while ($r_query = mysqli_fetch_array($q)) {
            $db_fav_who = $r_query['favourited_who'];
            $db_fav_by = $r_query['favourited_by'];

    if ($db_fav_by == $username){ // check to see which users favourites we are checking
        // if the user already exists in the logged in users favourites, then display remove from favourites button.
        if ($db_fav_who == $user){
            echo "<div class='edit_profile'> 
                <input type='submit' class='btn btn-info' name='remfriend' value='Remove from Favourites'>
            </div";
            }
        }
        }// while loop closed
    if ($user != $username) { // Check: See user isnt favouriting themself.
        $favourite_user = mysqli_query($connect, "INSERT INTO favourites VALUES ('', '$favourited_who', '$favourited_by')");
        $errMsg         = "Favourited";
        echo "done ";
    }
}
if ($user == $username){
      // dont display buttons
      } else { 
        echo "  <form method='post'>
            <input type='submit' class='btn btn-info' name='sendmsg' value='Send Message'/>
            <input type='submit' class='btn btn-info' name='addfriend' value='Add to Favourites'>
                </form>";
        }

使用此代码,数据将按预期的方式插入到DB中,remove from favourites按钮将出现,但它将与add to favourites按钮一起出现,而根据用户是否最喜爱,只应显示其中的一个按钮。

总之,应该始终只显示两个按钮,如果用户不在收藏夹中,则send message按钮和Add to favourites按钮一起显示;如果用户不在收藏夹中,则显示send message按钮和remove from favourites按钮(如果数据在数据库中,则为登录用户的收藏夹)。

EN

回答 1

Stack Overflow用户

发布于 2016-02-26 16:58:34

您可以使用jQueryjson来解决这个问题。我会这样做:

  • 在加载页面之前,如果用户已经很喜欢(从咨询数据库中),就放置一些php来获取它,并将其设置为$isFavorited或其他东西。然后,在同一页面中添加一个<script>元素,并在其中添加以下内容:
代码语言:javascript
运行
AI代码解释
复制
var favourited = <?php echo json_encode($isFavorited); ?>;
if(favourited)
{
   $("#someHtmlElem").after("<button value="remove from favorites">");
   //will add <button> after #someHtmlElem
} else {
   $("#someHtmlElem").after("<button value="add to favorites">");
}

若要在用户单击时与数据库合并,可以使用ajax:

代码语言:javascript
运行
AI代码解释
复制
    $.ajax({
        url: "file.php",
        type: "POST",
        data: {favourited: "true"}, //will send "true" to $_POST
            success: function(d) {
                alert(d);
            }
        }); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35661385

复制
相关文章
UICollectionView(集合视图学习笔记)
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。
全栈程序员站长
2021/07/07
3430
UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
今天调整项目需求,里面涉及到需要初始化多个百度编辑器。但是遇到这样一个问题,百度编辑器在第一次进入时,编辑器容器未初始化,再次刷新容器初始化成功。 通过UE.instances查看已初始化的实例却发现,该编辑器实例已存在,也就是说只是没有执行render函数
Clearlove
2019/08/29
1.5K0
UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
iOS10 / Swift3.0 / XCode 8 总结
因为它企图访问敏感数据时没有在应用程序的Info.plist 设置privacy key 新增的privacy setting如下:
100001509164
2022/01/20
8170
iOS10 / Swift3.0 / XCode 8 总结
Swif Array
使用加法赋值运算符(+=)也可以直接在数组后面添加一个或多个拥有相同类型的数据项:
赵哥窟
2018/09/13
4210
Swif Array
iOS小技巧·把子视图控制器的视图添加到父视图控制器
把子视图控制器的视图添加到父视图控制器并覆盖 添加子控制器 #pragma mark - 添加子控制器 - (void)addSubControllers{ [self addChildViewController:_childViewController]; [self.view addSubview:_childViewController.view]; [_childViewController.view mas_makeConstraints:^(MASConstraintMaker
陈满iOS
2018/09/10
9850
Swift 项目 - Xib | StoryBoard 多人协作技巧
不同于国外,StoryBoard从面世到如今饱受国内开发者的质疑,质疑的理由很多,什么不利于多人协作啊,隐藏了UI细节啊,出问题不容易测试,降低执行效率啊等等。此文就是针对这些问题的举例和剖析。
Swift社区
2022/04/04
2.1K0
Swift 项目 - Xib | StoryBoard 多人协作技巧
IOS开发之视图和视图控制器
        视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西。在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多。在UIKit框架中都有一个UIWindow来容纳我们的View。应用程序中几乎全部的可视控件都是UIView以及UIView的子类的实例,并且UIWindow也是UIView的子类。UIWindow可以不借助于父类视图显示在屏幕上,其余的视图都需要添加到父视图中才能显示。窗口是用来显示视图的,下面我们将会结合着实例来具
lizelu
2018/01/11
1.9K0
IOS开发之视图和视图控制器
(转)iOS开发之UICollectionViewController系列(一) :Ready CollectionViewController
原文链接:https://www.cnblogs.com/ludashi/p/4791826.html
VV木公子
2018/06/05
5.5K0
(转)iOS开发之UICollectionViewController系列(一) :Ready CollectionViewController
iOS开发之窥探UICollectionViewController(一) -- Ready Your CollectionViewController
之前用CollectionViewController只是皮毛,一些iOS从入门到精通的书上也是泛泛而谈。这几天好好的搞了搞苹果的开发文档上CollectionViewController的内容,亲身体验了一下CollectionViewController的强大,之前一直认为CollectionView和TableView用法差不多,功能应该也是类似的。TableView的功能就已经很强大了,,CollectionView就是TableView的升级版,其功能更为强大。以后的几篇博客中好好的研究一下Col
lizelu
2018/01/11
1.7K0
iOS开发之窥探UICollectionViewController(一) -- Ready Your CollectionViewController
细述Kubernetes和Docker容器的存储方式
#####集合视图的作用 集合视图是为了增强网格视图开发而在IOS6中开放的集合视图API。 #####集合视图的组成 集合视图有4个重要的组成部分,分别为:
全栈程序员站长
2021/07/07
1.5K0
UICollectionView
平常我在业务开发中,绝大部分情况都是使用的UITableView,而UICollectionView则是在极少情况下才会去使用,这就导致了我对UICollectionView略感陌生。本篇文章就是以二者对比的方式对UICollectionView做一个小总结。
拉维
2019/08/12
1.2K0
没有Eureka,但多了Nacos
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。
battcn
2018/08/03
1.6K0
没有Eureka,但多了Nacos
Ios常用第三方框架(二)
图表 PNChart - 国内开源作者,动态的图表。 swift-linechart - 功能完整、实用的折线图组件。使用方便,参数配置简单。是不可多得的优质组件--swift。 ios-charts - 一款优秀 Android 图表开源库 MPAndroidChart 的 Swift 语言实现版(支持 Objective-C 和 Swift 调用)。缺省提供的示例代码为 Objective-C。 TEAChart - xhacker/TEAChart 一个简洁的 iOS 图表库,支持柱状图、饼图
honey缘木鱼
2018/09/26
7.9K0
【IOS开发基础系列】UICollectionView专题
        UICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最简单的形式)。
江中散人_Jun
2023/10/16
9810
【IOS开发基础系列】UICollectionView专题
SpringMVC的视图控制器(二)
现在我们已经配置了 SimpleUrlHandlerMapping 和 InternalResourceViewResolver,可以使用它们来创建视图控制器了。要创建视图控制器,需要创建一个带有 @Controller 注解的类,并在这个类中添加用于处理 URL 的方法。这些方法将使用 InternalResourceViewResolver 来将视图名称解析为实际的视图,并将这些视图呈现给用户。下面是一个创建视图控制器的示例:
堕落飞鸟
2023/05/13
3640
[CodeIgniter4]概述-模型,视图和控制器
当创建一个应用的时候,我们需要有一种便捷的代码结构。和很多 Web 框架类似, CodeIgnite 框架也使用了模型、视图、控制器结构,即 MVC 模式,来组织接着代码文件。这种方式可以将数据,展示部分和流程部分分别作为单独的部分存放在我们的应用中。需要注意的是,可能每个人会对某个元素所担任的角色有不同的看法,那么,下面我们就通过这个文档说明这些元素所担任的角色。
landv
2020/03/05
7820
iOS---UICollectionView详解和常用API翻译
UICollectionView 1.必须要设置布局参数 2.注册cell 用法类似于UITableView 类。自动实现重用,必须注册初始化。 使用UICollectionView必须实现UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout这三个协议。 Collection View的构成,我们能看到的有三个部分: Cells Supplementary Views 追加视图 (类似He
用户1941540
2018/05/11
2.3K0
Cocoa编程中视图控制器与视图类详解
iPhone编程规则是:一个窗口,多个视图。UIView是iPhone屏幕上很多控件的基础类。每个iPhone用户界面都是由显示在UIWindow(这其实也是个特殊的UIView)内的众多UIView及其专门化子类构建的。 显示数据的视图: UITextView UILabel UIImageView UIWebView MKMapViews UIScrollView 可选择的视图(以下两个视图类实例都是模态显示的): UIAlertView UIActionSheet  所有控件(控件是将用户触摸转换为回
猿人谷
2018/01/17
5.2K0
Cocoa编程中视图控制器与视图类详解
iOS流水布局UICollectionView简单使用引实现结
开发中我们最常看到的可能是表视图UITableView了,但其实还有一个视图也很常见,特别是一些图片、商品、视频的展示界面,用UICollectionView来展现往往会更加方便。
Cloudox
2021/11/23
1.1K0
iOS流水布局UICollectionView简单使用引实现结
SpringMVC的视图控制器(一)
SpringMVC 的视图控制器是一个可以将 URL 映射到视图的控制器。它允许开发人员通过简单的配置来处理不需要任何逻辑的请求,并将它们直接映射到相应的视图。使用视图控制器,可以将控制器代码与视图代码分开,使代码更加清晰易读。
堕落飞鸟
2023/05/13
4560

相似问题

唯一ID算法

30

当使用非ID属性检索REST资源时,如何构造URL?

10

成员:使用唯一ID与域对象

30

REST服务的唯一请求ID的HTTP响应头

20

层次化REST中的复合ID

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文