javascript - 单击按钮时更新数据库

标签 javascript php mysql ajax

我这里有一个按钮:

<button type="button" class="btn btn-primary">add me</button>

我尝试使用 AJAX;在我的数据库中,我有一个 sp_status(在我的 $UserData 中,它是一个数组)。我想将数据库中 ID 为 $UserData['sp_id'] 的用户 sp_status 从 5 值更改为 0。 这是我尝试使用它执行此操作的代码:

<script>
    $(document).ready(function(){
    $(".btn").click(function(){
        alert("PROBLEM IS HERE!");  
        $.ajax({
        url: "update.php",
        type: "POST",
        data: {uid: $UserData['sp_id']}, //this sends the user-id to php as a post variable, in php it can be accessed as $_POST['uid']
        success: function(data){
            data = JSON.parse(data);
        }
    });
});
}); 
</script>

$UserData 数组将 sp_id 作为用户的标识符。 在同一文件夹中的 update.php 中,我写了这段代码:

<?php
if(isset($_POST['uid'])){
    $query = mysql("UPDATE `signup_participant` SET sp_status = 0 WHERE sp_id = ".$_POST['uid']));
    $results = mysql_fetch_assoc($query);
    echo json_encode($results);
}

我面临两个主要问题。首先,当我将 alert("PROBLEM IS HERE!"); 向下移动一行并单击时,没有任何反应。
另一个问题是关于 update.php。我复制并粘贴 UPDATEsignup_participantSET sp_status = 0 WHERE sp_id =10(静态值为 10),在 phpMyadmin 的控制台中一切正常。
我读了一个堆栈上有很多问题,但没有人提供帮助。 谁能解决这个问题?
编辑: 正如 friend 所说,我将我的代码更改为此(AJAX 部分):

<script>
    $(document).ready(function(){

    $(".btn").click(function(){
        alert('Hello');
        $.ajax({
        url: "update.php",
        type: "POST",
        data: {uid: "<?php echo $UserData['sp_id'];?>"}  
        success: function(data){
        data = JSON.parse(data);
        }
        });
    });
});
</script>

奇怪的是弹出警告不再显示了。有什么想法吗?

最佳答案

是的,你必须犯错误:

第一个是您在 Javascript 代码中调用的“$UserData['sp_id']”,不清楚这个变量是什么意思或者它从哪里来,如果它是 Html 元素的值那么应该是:

data: {uid: $('#sp_id').val();},

如果它是一个 Php 变量,它将是:

data: {uid: <?php $UserData['sp_id']; ?>},

下一个错误在 Php 服务器代码中:

$query = mysql("UPDATE `signup_participant` SET sp_status = 0 WHERE sp_id = ".$_POST['uid']));
$results = mysql_fetch_assoc($query);

这两个命令是分开的,第一个用于更新数据库,第二个用于显示数据库的结果,它们必须如下所示:

$query = "UPDATE `signup_participant` SET sp_status = 0 WHERE sp_id = ".$_POST['uid'];
mysql_query($query);

$query   = "SELECT * from `signup_participant` WHERE sp_id = ".$_POST['uid'];
$select  = mysql_query($query);
$results = mysql_fetch_assoc($select);

关于javascript - 单击按钮时更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35686199/

相关文章:

PHP/MySQL 组合两个查询以减少循环

javascript - 使用 ".delay"启用链接方法

javascript - getUserMedia : how to find the active devices? 后的 enumerateDevices

javascript - JCarouselLite 似乎只滚动一次

php - 嵌套 JSON 数组在 mySQL 表中是什么样子?

python - Django 3.x 错误 : 'mysql.connector.django' isn't an available database backend

mysql - 使用 sequelize 从 child 那里获取父记录

javascript - react : Can't export const

php - 我的具有多个输入的表单中的唯一 ID 无法保存在我的数据库 Php 中

php - 如何通过 VSCode 在 docker 容器上运行更好的 phpunit