2016-02-28 94 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 –