使用AJAX更新MySQL数据库


Update MySQL database with AJAX

我有一个带有提交按钮和关闭按钮的表单。如果用户输入一些内容并点击提交按钮,答案将被发布并保存在数据库中。如果用户单击关闭按钮,数据库中的一个条目将更新为当前时间戳。

一切都很好,但现在我想做这些改变,如果有人用AJAX点击关闭按钮,这样我就不必重新加载页面了。

我的提交按钮的代码是:

<input type='submit' id='setclosed' value='Close Ticket' name='setclosed' class='btn btn-warning' />

现在,如果有人点击提交按钮,以下代码将在我的当前文件中激活(因此没有外部文件可用于php处理):

if (isset ($_POST['setclosed'])) {    // Setze Status auf Closed
    $updatecontent_success=array('stamp_closed'=>$localtime);
    updateContractTicket($show_details,$updatecontent_success);
}

我必须做些什么才能更新数据库条目,但页面不会重新加载?

下面是一个快速的AJAX示例。您应该将PHP和Javascript/HTML代码分开。我会把这两份文件写出来。

在您的HTML文件中,您将拥有发出请求的HTML代码和javascript,然后提醒用户请求已通过。确保你的表格没有提交任何内容。

-HTML

<button type='button' id='setclosed' name='setclosed'   class='btn btn-warning'>Close Ticket</button>

-Javascript

$('#setclosed').click(function() {
  $.post('ajax.php',
    {   cmd: 'setclosed' },
    function(data) {
        alert('AJAX request was made');
    }, 'json'
  );
});

ajax将PHP读取的POST变量发送为$_POST["cmd"]。这将使php执行该命令所需的代码,回显状态,然后退出php文件。

-PHP

if ($_POST["cmd"]=='setclosed') {
  $updatecontent_success=array('stamp_closed'=>$localtime);
  $updateContractTicket($show_details,$updatecontent_success);
  echo json_encode(array('Status' => 'Ok'));
  exit(0);
}

如果有什么不清楚的地方,请告诉我。