Обновление данных базы данных Mysql с использованием Php и Ajax - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь настроить кнопку, которая при нажатии добавляет фиксированное число к значению базы данных. База данных называется var_stat и состоит из id и value. Таблица пока имеет одну строку, где id = var и value = 35. Если щелкнуть, кнопка должна добавить 5 к значению, делая его 40.

Я не уверен, что здесь делать, так как все ответы, которые я нашел, использовали совершенно другой подход и строки вместо целых чисел. Пока я сделал это:

if (isset($_POST['n'])){
$n = $_POST['n'] ;
$stmt = $con->prepare('UPDATE var_stat SET value = value + $n WHERE id = ? ');
$stmt->bind_param('s', $id);
$id = "var";
$stmt->execute();
$stmt->close();
}
<script src="js/jQuery-3.4.1.js"></script>
  <script>
   function add(n){ 
    $.ajax({
        type: "POST",
        url: "update.php",
        data: {
            'n' : n
        },
        cache: false,
        success: function(response)
        {
        alert("Record successfully updated");
        }
    });
 }
  </script>
<form>
<input type="button" value="+5" class="btn btn-circle btn-grey col-sm-10" onclick="add(5);">
</form>

Если я заменим $n в update.php на integer и запуском update.php сам по себе, это сработает, однако я не могу заставить его пройти через мою html-страницу, поэтому я предполагаю, что есть что-то не так с моим кодом JavaScript?

1 Ответ

4 голосов
/ 06 июня 2019

Также свяжите n, переместите id перед оператором связывания

if (isset($_POST['n'])){
    $n = $_POST['n'] ;
    $id = "var";
    $stmt = $con->prepare('UPDATE var_stat SET value = value + ? WHERE id = ? ');
    $stmt->bind_param('is',$n, $id);
    $stmt->execute();
    $stmt->close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...