2016-02-28 93 views
4

我这里有一个按钮:更新数据库上的一个按钮,当点击

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

我尝试使用AJAX;在我的数据库中,我有一个sp_status(在我的$UserData这是一个数组)。我想从5值与$UserData['sp_id'] ID更改用户sp_status数据库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> 

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

+0

我很惊讶这在所有工作因为按钮类不匹配事件处理程序'class =“btn btn-primary”'''$(“。button”)。click(function()' – NewToJS

+0

如何解决这个问题? –

+0

你可以改变'$(“。button”)。click'到'$(“.btn”)。click'或者添加'button'到class属性'class =“按钮btn btn-primary”'I除了这是我注意到的第一个错误之外没有看过其他任何东西。 – NewToJS

回答

1

是的,你必须错误:

第一个是“$的UserData [‘sp_id的’]”你在JavaScript代码调用,目前还不清楚是什么你从这个变量的意思或者做到了从何而来,如果它是一个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); 
+0

我不明白。我应该在哪里添加$('#sp_id')。val(); ? –

+0

它应该不是$ UserData ['sp_id'],但正如我所说,它取决于该值或变量的位置,我举了一个例子,如果它是一个保存在Html元素中的值,那么你应该使用它,但如果不是那么你必须使用另一个,所以如果你可以在你的问题中附加整个代码,它会更容易知道它来自哪里。 –

+0

这是一个从数据库中读取并存储在UserData –