嗨我有一个包含数据的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代码(第2页,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上的显示不会自动更新。我必须手动刷新才能看到更新的结果。任何帮助,将不胜感激。
答案 0 :(得分:1)
通过调用header("Location: index.php");
,您不会重定向主页面。您发送了一个ajax请求 - 您可以在后台打开新页面时考虑它,因此此代码将该页面重定向到index.php。
解决任务的更好方法是将状态返回到成功函数,并删除从数据库中删除的项目。
success: function(data){
if(data.success){
//remove deleted items
}
}