2016-02-28 3 views
4

У меня есть кнопка здесь:обновление базы данных при нажатии на кнопку

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

Я пытался использовать AJAX; в моей базе данных У меня есть sp_status (в моем $UserData, который является массивом). Я хотел, чтобы изменить пользователь sp_status в базе данных с идентификатором $UserData['sp_id'] от 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.
Я читал здесь много вопросов о стеке, но никто не помогает. Может ли это исправить?
EDIT: Как друзья говорили, я изменить свой код, чтобы это (часть 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 »). Нажмите' to '$ (" .btn "). Нажмите' или добавьте 'button' в атрибут class' class = "button 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 –

Смежные вопросы