在 Ajax 和 PHP 中更新 SQL 值

Posted

技术标签:

【中文标题】在 Ajax 和 PHP 中更新 SQL 值【英文标题】:Update SQL value in Ajax and PHP 【发布时间】:2013-07-09 00:44:45 【问题描述】:

我有一个这样的按钮:

<a id="MSN89" class="onButton">

我想将其状态更改为:

<a id="MSN89" class="offButton">

通过单击第一个红色按钮,我希望能够将值(例如 MSM89)保存到我的 sql 数据库中。

通过单击第二个灰色按钮,我希望能够从我的 sql 数据库中输出值(例如 MSM89)。

我试着让它变成这样但是它一直在重新加载页面,而且我的数据太多,我无法每次点击都重新加载它......

UPDATE User
SET cards='MSN89'
WHERE User_Id='3';

我阅读了this,但我不知道如何在我的代码中实现它。

感谢您为我指明正确的方向。


我尝试了这种类型的代码,但可以肯定这是最好的方法,它不会刷新页面...

<a id="MSN89" class="onButton">
<script>
$(".onButton").click(function() 
  // sql request
  ...
  UPDATE User SET cards='MSN89' WHERE User_Id='3';
  ...
);
</script>

<a id="MSN89" class="offButton">
<script>
$(".offButton").click(function() 
  // sql request
  ...
  UPDATE User SET cards='' WHERE User_Id='3';
  ...
);
</script>

【问题讨论】:

听起来您需要在每次单击按钮时发出 AJAX 请求而不是整个页面请求。你试过什么? 那么您是否希望在不加载页面的情况下将数据(即 MSN89)插入并显示在您的页面上? @saran banerjee:请。无需重新加载页面。 你能显示一些代码吗?为了实现这一点,您需要一些 javascript(为了进行 ajax 调用)和一些 php 以执行数据库操作。 @George Cummins & Muc:我更新了代码。 【参考方案1】:
"UPDATE 'User' SET 'cards' = 'MSN89' WHERE 'user_id' = 3"

MSN89 不是 int 值,所以我相信它应该用引号引起来

一般的经验法则是 INT 值不需要引号,字符串需要

【讨论】:

【参考方案2】:

所以你必须使用 ajax 对于 js 代码,您需要一个可以从任何地方获取的 jquery 库。

js代码

function FnBookmark(id,mode)

$.ajax(
                    url:'yourdomain.com/bookmark.php',
                    data:mode:mode,id:id,
                    dataType:'json',
                    success:function(data)
                          if(mode == "on")
                          
                              $("#MSN89").attr("class", "offbutton");
                              $("#MSN89").attr("onClick","FnBookmark('MSN89','off')");
                          
                          else
                          
                              $("#MSN89").attr("class", "onbutton");
                              $("#MSN89").attr("onClick","FnBookmark('MSN89','on')");

                          
                    
      );

php代码:在bookmark.php中

if($_GET['mode'] == "on")

    $id = $_Get['id']; // this has the value MSN89
    $sql = "UPDATE User
        SET cards='$id'
        WHERE User_Id=3";

    //then execute the query



if($_GET['mode'] == "off")
 
   $sql = "UPDATE User
        SET cards=''
        WHERE User_Id=3";

    //then execute the query



header('Content-Type: application/json; charset=utf-8');
exit;

html页面:

对于按钮

<a id="MSN89" class="onButton" onclick="FnBookmark('MSN89','on');">

关闭按钮

<a id="MSN89" class="offButton" onclick="FnBookmark('MSN89','off');">

我希望这能有所帮助。

【讨论】:

非常感谢萨兰!我会花时间测试它。 :)

以上是关于在 Ajax 和 PHP 中更新 SQL 值的主要内容,如果未能解决你的问题,请参考以下文章

使用 php 和 sql 的 Ajax 弹出视图更新数据

无需重新加载页面即可删除 SQL 值(AJAX、PHP)

获取 ajax 请求以更新 SQL 表中的列

如何根据复选框更新数据库值? jQuery/php/ajax

使用 AJAX 和 PHP 更新表单字段

ajax 和 SQL 在附加行上显示数据库值