我有一个带有提交按钮和关闭按钮的表单。如果用户输入一些内容并点击提交按钮,答案将被发布并保存在数据库中。如果用户单击关闭按钮,数据库中的一个条目将更新为当前时间戳。
一切都很好,但现在我想做这些改变,如果有人用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);
}
如果有什么不清楚的地方,请告诉我。