PHP在处理后不会自动重新加载


PHP is not reloaded automatically after processing

嗨,我有一个包含数据的PHP文件。该值被传递到另一个php文件,该文件成功地处理了它。但是第一个php文件不会刷新以更新新结果。它必须手动完成。有人能告诉我哪里错了或者需要做什么吗。请在下面找到我的代码。

PHP代码(第1页,index.PHP)

function display_tasks_from_table() //Displayes existing tasks from table
{
 $conn = open_database_connection();
 $sql = 'SELECT id, name FROM todolist';
 mysql_select_db('todolist'); //Choosing the db is paramount
 $retval = mysql_query( $sql, $conn );
 if(! $retval )
 {
   die('Could not get data: ' . mysql_error());
  }
  echo "<form class='showexistingtasks' name='showexistingtasks' action='remove_task.php' method='post' >";
 while($row = mysql_fetch_assoc($retval))
{
 echo "<input class='checkbox' type='checkbox' name='checkboxes{$row['id']}' value='{$row['name']}' onclick='respToChkbox()' >{$row['name']}  <img src='images/show_options.gif' /><br>";       
} 
 echo "</form>";
 echo "<label id='removeerrormsg'></label>";
  close_database_connection($conn);
  }

找到所选值的Javascript代码:

var selVal; //global variable
function respToChkbox()
 {
var inputElements = document.getElementsByTagName('input'),
input_len = inputElements.length;
for (var i = 0; i<input_len; i++) 
{
    if (inputElements[i].checked === true)
    {
        selVal = inputElements[i].value;
    }
   }
  }

将值传递到另一个页面的jQuery代码(remove_Task.php):

$(document).ready(function() {   
$(".checkbox").click(function(){
$.ajax({
type: "POST",
url: "remove_task.php", //This is the current doc
data: {sel:selVal, remsubmit:"1"},
success: function(data){
    //alert(selVal);
    //console.log(data);
}
});
});        
});

PHP代码(第二页,remove_task.PHP);

session_start();
error_reporting(E_ALL);ini_set('display_errors', 'On');

 $task_to_remove = $_POST['sel'];
 function remove_from_list() //Removes a selected task from DB
 {
$db_connection = open_database_connection();
global $task_to_remove;
mysql_select_db('todolist');
$sql = "DELETE FROM todolist WHERE name = "."'".$task_to_remove."'";
if($task_to_remove!='' || $task_to_remove!=null) 
{
mysql_query($sql, $db_connection);
}
    close_database_connection($db_connection);
    header("Location: index.php");
    }
     if($task_to_remove != "") {
     remove_from_list();
     }

选定的值将被删除,但index.php上的显示不会自动更新。我必须手动刷新才能看到更新的结果。如有任何帮助,我们将不胜感激。

通过调用header("Location: index.php");,您不会重定向主页面。您发送了一个ajax请求,您可以将其视为在后台打开一个新页面,因此此代码将页面重定向到index.php。

解决任务的更好方法是将状态返回到成功函数并删除数据库中删除的项目。

success: function(data){
    if(data.success){
        //remove deleted items
    }
}