我正在为我的网站创建任务列表。用户可以使用带有日期选择器的简单文本输入表单添加与项目相关的新任务。
任务显示在一个简单的列表中,旁边有一个复选框。我打算这样做,所以当勾选一个方框时,文本会通过它获取一行,并更新sql表。 (没有实际的保存按钮)。
在我想知道我打算在下面使用的方法是否是解决此问题的正确方法之前,或者我认为它们是更好的选择之前,从未使用过Ajax。我是一名相对初学者,正在学习这个项目。
我的目的是在每个复选框上调用一个jquery函数(另一个用于check / uncheck?),它将传递jquery填充到虚拟表单中的任务的id号。通过ajax将其发布到将更新sql表的php文件。
从未使用过ajax,这甚至是可能的。它们会成为性能问题吗?即如果你点击很多方框会发生什么。 (这是一个内部网站,最多只有2或3人同时使用它,但不经常使用)。
我使用表单插件http://jquery.malsup.com/form/测试了一些Ajax表单提交 但有一件事我不明白,一旦完成就会采取一些行动,例如如何刷新列表,以便从表中显示更新的信息。
答案 0 :(得分:2)
这是解决问题的合法方式。你真的不需要虚拟表格。
你可以使你的功能如下:
function checkboxChecked(id)
{
$.ajax({
method: "POST",
url: "yourPhpPage.php",
data: { action: "checked",
id: id }
})
.done(function( msg ) {
console.log("succeeded")
}
.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
}
来源:jquery ajax
除非您怀疑每秒有大量点击,否则这不应该给您带来任何性能问题。
对于服务器端,您可以使用以下代码:
if (!isset($_POST['action'], $_POST['id']))
return;
if ($_POST['action'] == "checked") {
// your SQL call here.. Watch out for sql-injection!
}
else if ($_POST['action'] == "unchecked") {
// your SQL call here.. Watch out for sql-injection!
}