【问题标题】:How to Update MySQL with PHP and AJAX without REFRESHING the PAGE如何在不刷新页面的情况下使用 PHP 和 AJAX 更新 MySQL
【发布时间】:2025-12-27 18:45:11
【问题描述】:

好的,这是我的问题

我有以下顺序的 MySQL:

ids - 电台 - 链接 - 时间 - 艺术家 - 标题 - 不喜欢


ids 是媒体的 ID

从页面 LISTEN.php 我从数据库中随机选择视频。

我已经在 LISTE.php 中创建了显示视频的 ID 以及艺术家和标题。

**我需要在 LISTEN.php 上有一个按钮,当有人点击它时,例如按钮的名称 -> 不喜欢

因此,如果有人单击它 AJAX 或以某种方式不刷新页面,但同时单击 DISLIKE 按钮以在 MySQL 中更新(再次不刷新页面)到 Disliked - 1,(当此按钮为再次按下相同的视频以更新到 2 / 3 / 4 等等。现在我所有的视频都是 0。

例如,我需要能够查看不喜欢的视频

从 RANDOM 中选择 *,其中不喜欢的数字大于 >0**

我在 PHP 方面不是很好,所以请帮助我,再一次页面不应该刷新。

非常感谢您的帮助。

【问题讨论】:

  • 这个问题的问题是你没有表现出任何研究努力或尝试自己解决这个问题。向我们展示您的尝试以及您遇到的问题将对我们双方都有帮助。
  • 我做不到我已经尝试了 3 天,然后我发现了 *。

标签: javascript php jquery mysql ajax


【解决方案1】:

jQuery 中的 Ajax 是这样工作的:

var myData=1;
$.ajax({
    type:'POST',//type of ajax
    url:'mypage.php',//where the request is going
    data:myData,//the variable you want to send
    beforeSend:function(xhr){//as a standard, I add this to validate stuff
        if(someThingWrong===true)xhr.abort//aborts xhttpRequest
   },
   success:function(result){
       //result is your result from the xhttpRequest.
   }
});

这不会刷新您的页面,而是向指定的 url 发送“POST”。在您指定的页面上,您想做任何您想做的事情并说返回结果。在我的示例中,我将做一些简单的事情:

if($_POST['myData']===1)return True;

这是使用 jQuery 的 AJAX 请求的基础知识。

编辑!

启动 AJAX 脚本: 我只是猜测,因为我不知道您的 html 中的元素,也不知道您的脚本!所以你必须做出调整!

$('button.dislike').click(function(){
    $.ajax({
        type:'POST',
        url:'disliked.php',
        data:{dislike:$(this).attr('id')},
        success:function(result){
            $(this).prev('span').append(result);
        }
    });
 });

PHP: 不要使用mysql,它现在已经被贬值并且被认为是不好的做法,我也不知道为什么在查询上使用sprintf? :S

$DBH=new mysqli('location','username','password','database');
$get=$DBH->prepare("SELECT dislike FROM random WHERE ids=?");
$get->bind_param('i',$_POST['dislike']);
$get->execute();
$get->bind_result($count);
$get->close();
$update=$DBH->prepare('UPDATE random SET dislike=? WHERE ids=?');
$update->bind_param('ii',++$count,$_POST['dislike']);//if you get an error here, reverse the operator to $count++.
$update->execute();
$update->close();
return String $count++;

只有在您的 HTML 中有一系列 ID 与数据库中的按钮匹配的按钮时,这才有效。所以

$get=$DBH->prepare('SELECT ids FROM random');
$get->execute();
$get->bind_result($ids);
while($get->fetch()){
    echo"<button class='dislike' id='".$ids."'>Dislike this?</button>";
}

希望您大致了解我如何管理您的不喜欢按钮系统 XD 哈哈

【讨论】:

  • 好的,我已经创建了将不喜欢的更新为 +1 的 PHP 文件。你能给我 HTML BUTTON 的代码吗?
  • 只需将上述内容放入事件侦听器中并对其进行操作以适合您的网址等。
  • 对不起,我不明白...这是我的 index.php 这是我的:disliked.php
  • random WHERE ids='$ids'"); $sql = mysql_query($query); $row = mysql_fetch_array($sql); $nums = mysql_query("SELECT * FROM random WHERE ids='$ids'"); while ($row = mysql_fetch_array($nums)) { $disliked = $row['disliked']; $不喜欢++; $sql = "更新random SET disliked='$disliked' where ids='$ids'"; mysql_query($sql); } 回声 $disliked; if($_POST['myData']===1)返回真; ?> 我的问题是如何使用按钮将数据从 index.php 发送到 disliked.php?
  • 哇!这很难读!大声笑看起来一团糟!我会在我的答案中添加一个补充。
最近更新 更多