我正在创建一个动态的待办事项列表。该列表从本地数据库下载并显示在表格中。每个待办事项都有一个提交按钮,您可以按下该按钮,待办事项应该在数据库中注册为“完成”。在我的代码中,这是通过一个名为 status 的变量完成的,其中 1 的值已完成,0 的值已撤消。
我的问题是您可以按任何按钮并且一切正常;新状态被发送到 PHP 脚本,该脚本反过来修改数据库中的状态值。然后网页自动更新显示表。但是,如果您再试一次,在任何其他按钮上,它都不起作用。您必须重新加载网页才能使其他任何按钮起作用。
这是我的 Jquery/AJAX 代码:
$(document).ready( function() {
$('#todo_display_table input[type="submit"]').click(function(evt) {
evt.preventDefault();
var todo_id = $(this).val();
//document.write(todo_id);//debug
$.when(changeTodoStatusTo(1, todo_id)).then(updateTodoDisplay);
});
});
function updateTodoDisplay() {
$.post("./daily_todo_display.php", null, replaceTbodyHTML);
}
function replaceTbodyHTML(data) {
$('#todo_display_table tbody').html(data);
}
function changeTodoStatusTo(newStatus, todo_id) {
//Send til phpscript som lagrer ny status i databasen
var parameters = {
todo_id: todo_id,
newStatus: newStatus
};
return $.post("./daily_todo_change_todo_status.php", parameters); //, printDebugInfo);
}
我也可以发布我的 PHP 脚本,但我已经单独测试过它们,它们似乎可以工作。同样,我页面上的所有功能都可以正常工作,但是在您单击一次后它们似乎停止工作。
我检查了数据库,并且状态值仅在第一次尝试(第一次单击任何按钮)时自行更新,这表明问题出在 click() 函数或 changeTodoStatusTo() 函数中。Thnx 的任何帮助,并毫不犹豫地询问更多信息 =)