2013-11-20 19 views
0

嗨我有一個PHP文件的數據。該值被傳遞給另一個成功處理它的php文件。但第一個php文件不會刷新以更新新的結果。它必須手動完成。任何人都可以告訴我我錯了什麼或需要做什麼。請在下面找到我的代碼。PHP處理後沒有自動重新加載

PHP代碼(第一頁,的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; 

    } 

    } 
    } 
,其值傳遞到另一頁(remove_Task.php)

jQuery代碼:

$(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 code(2nd page,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上的顯示未自動更新。我必須手動刷新以查看更新後的結果。任何幫助,將不勝感激。

回答

1

通過致電header("Location: index.php");您不重定向主頁面。您發送了一個ajax請求 - 您可以考慮在後臺打開一個新頁面,因此此代碼將頁面頁面重定向到index.php。

解決您的任務的更好方法是將狀態返回到您的成功函數並刪除從數據庫中刪除的項目。

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

該怎麼辦? – Krish

+0

@Krish我現在不能幫你用php代碼,在JS端你可以在你的元素上使用.remove()。 – mdolbin

相關問題