单击按钮时更新数据库


updating a database when clicking on a button

我这里有一个按钮:

<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。我复制并粘贴UPDATE signup_participant SET sp_status = 0 WHERE sp_id =10(静态值为 10),在 phpMyadmin 的控制台中一切正常。
我在堆栈上读了很多问题,但没有人帮助。任何人都可以解决这个问题吗?
编辑:正如朋友所说,我将我的代码更改为以下代码(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);