Перезапись одной строки с помощью AJAX - PullRequest
0 голосов
/ 26 января 2019

У меня есть следующие файлы ajax и php для ввода данных в мою текущую таблицу mytable.Приведенные ниже коды прекрасно работают вместе.

Ajax-файл:

<script type="text/javascript">

  function insertData() {
    var stata=$("#stata").val();
    var statb=$("#statb").val();
    var statc=$("#statc").val();


        $.ajax({
            type: "POST",
            url: "update.php",
            data: {stata:stata,statb:statb,statc:statc},
            dataType: "JSON",
            success: function(data) {
             $("#message").html(data);
            $("p").addClass("alert alert-success");
            },
            error: function(err) {
            alert(err);
            }
        });

}

</script>

update.php

<?php
include('db.php');
$stata=$_POST['stata'];
$statb=$_POST['statb'];
$statc=$_POST['statc'];

$stmt = $DBcon->prepare("REPLACE INTO mytable (stata,statb,statc) VALUES(:stata, :statb,:statc)");

$stmt->bindparam(':stata', $stata);
$stmt->bindparam(':statb', $statb);
$stmt->bindparam(':statc', $statc);
if($stmt->execute())
{
  $res="Data Inserted Successfully:";
  echo json_encode($res);
}
else {
  $error="Not Inserted,Some Problem occur.";
  echo json_encode($error);
}

?>

Что я хотел бы сделать, этоперезаписывать одну и ту же строку (обновлять или заменять) в таблице (например, где id = 1) каждый раз, когда я вводю данные.

Но когда я добавляю "Where id=1" к запросу sql, я получаю ошибку [object Object] на экране.Я не мог заставить это работать так, как я пытался.Как я могу преодолеть эту проблему?спасибо.

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Я думаю, что проблема связана с типом данных.Запросы JSON обычно возвращают объекты JSON, а не строки.Console.log(data), затем найдите строковое значение ошибки и используйте правильный ключ.Кроме того, если в коде вашего сервера произойдет ошибка, он вернет объект JSON, а не просто строку, поэтому вам придется обходить объект до тех пор, пока вы не получите строку, которую хотите вывести в $("#message")

0 голосов
/ 26 января 2019

Если вы хотите обновить строку (а не заменить ее), используйте UPDATE вместо REPLACE.

UPDATE mytable SET stata = :stata, statb = :statb, statc = :statc WHERE id = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...