2013-08-02 17 views
-1

我已經在幾個網站中搜索了我的問題,但我無法得到它。我正在尋找的是如何刷新頁面後,迴應與成功的消息刪除行。我的頁面admin2.php顯示了來自DB的管理員信息以及學生的表格(來自數據庫),這些學生在學生的每一行旁邊都有一個複選框。我通過Ajax發送表單(表格)到(admin3Response.php)頁面進行檢查,然後返回響應。這是我的代碼有問題。如何在表單響應回來後刷新頁面

admin2.php

 <tr><th>Admin Information</th> 
     <th style="width: 212px"></th></tr> 
     <tr><td><b>Admin Name: <?php echo $name; ?></b><span name="adminName"></span></td> 
     <td style="width: 212px"><b>Admin ID: <?php echo $userID; ?></b><span name="adminID"></span></td></tr> 
     <tr><td><b>Phone: <?php echo $phone; ?></b><span name="adminPhone"></span></td> 
     <td style="width: 212px"><span></span></td></tr> 

admin2.php 這就是我想成爲一個刷新的形式。從這張表中我可以選擇我想刪除的學生。

else if(isset($dropStudent)) 
{ 

if(mysql_num_rows($QueryResult7) == 0) 
    { 
      ?> 
    <h2><?php echo ("There are no students available.");?></h2> 
    <p> 
    <div class="form_settings"> 
    <input class="submit" type="button" onclick="goBack()" name="delete0" value="Back" style="margin-left: 0px; width: 89px"> 
    </div> 
    <?php 
    } 
else 
{ 
?> 

<form name="form3" id ="form3" method="" action="admin2.php" > 
<input type="hidden" value="Delete" name="deleteStudent"> 
<?php 
echo $adminUser; 
?> 
<TABLE style="width:100%; border-spacing:1;"> 


<TR><TH>Choose</TH><TH>USER_ID</TH><TH>STUDENT NAME</TH><TH>EMAIL</TH><TH>PHONE</TH>     <TH>MAJOR</TH><TH>GPA</TH><TH>DEGREE</TH></TR> 
<?php 

$Row7 = mysql_fetch_row($QueryResult7); 
// reads row of query into indexed array 
// advances result pointer 
do 
{ 
echo '<TR><TD><input type="checkbox" name="checkbox[]" value="' . $Row7[0] . '"></TD>'   . 
"<TD>{$Row7[0]}</TD> 

<TD>{$Row7[1]}</TD>" . 
"<TD>{$Row7[2]}</TD> 

<TD>{$Row7[3]}</TD>" . 
"<TD>{$Row7[4]}</TD> 

<TD>{$Row7[5]}</TD>" . 
"<TD>{$Row7[6]}</TD> 

</TR>"; 

$Row7 = mysql_fetch_row($QueryResult7); 

} while ($Row7); // tests for content of null 

?> 

<input type="hidden" value="<?php echo $countStds; ?>" name="countStds"> 
<input type="hidden" value="<?php echo $adminUser; ?>" name="adminUser"> 


<tr> 
<td colspan="10"> 

</tr> 
<?php 
mysql_close($DBConnect); 
?> 
</TABLE> 
</form> 
<script> 
// $("#form3") grabs the above form with an ID of "form3" 
$("#form3").on('submit', function(){ 

    // Grab all form values 
    var values = $("#form3").serialize(); 
    // Send form values over ajax 
    $.ajax({ 
     method: 'POST', 
     url: 'admin3Response.php', 
     data: values, 
     // execute when response comes back from admin3Response.php 
     success: function(data){ 
      // data = whatever admin3Response echo'd back 
      // check for success 
      if (data.lastIndexOf("success") >= 0) { 

       // no errors 
        alert("Student was dropped successfully"); 

     window.location.reload(true); // It reload an empty page; didn't work 
       //alert("TODO: redirect user somewhere?"); 
      } else { 
       // Display error message 
       alert(data); 
      } 
     } 
    }) 
    return false; 
}); 
    </script>   
    <?php 

    } 
    } 

admin3Response.php

else if(isset($deleteStudent)) 

{ 

if (isset($checkbox)) 
{  

for($i=0; $i<$countStds; $i++) 
{ 
    $delStudent = $checkbox[$i]; 
    $wholeStudents = mysql_query("DELETE USERS, ENROLLMENTS, OVERIDES FROM   USERS, ENROLLMENTS, OVERIDES WHERE USERS.USER_ID = ENROLLMENTS.USER_ID AND ENROLLMENTS.USER_ID = OVERIDES.USER_ID AND USERS.USER_ID = '$delStudent'"); 
    $delUserStudent = mysql_query("DELETE USERS FROM USERS WHERE USER_ID = '$delStudent'"); 
    $delOverStudent = mysql_query("DELETE OVERIDES, USERS FROM OVERIDES, USERS WHERE USERS.USER_ID = OVERIDES.USER_ID AND USERS.USER_ID = '$delStudent'"); 
    $delEnrStudent = mysql_query("DELETE ENROLLMENTS, USERS FROM ENROLLMENTS, USERS WHERE USERS.USER_ID = ENROLLMENTS.USER_ID AND USERS.USER_ID = '$delStudent'");  
} 

echo ("You have deleted "); echo count($checkbox); echo (" student(s) `enter code here`successfully."); 


echo ("success"); 
} 
else 
{ 
echo ("No student selected"); 
} 

mysql_close($DBConnect);  

} 

我嘗試使用 「window.location.reload(真);」,但它重新加載一個空白頁。我的猜測是我需要使用get方法將admin3Response.php中的所有變量傳遞給admin2.php,但我不知道該怎麼做。任何幫助將不勝感激。

回答

0

方法很多,我想你可以這樣做:

window.location.reload(); 
    history.go(0); 
    window.location.href=window.location.href; 

如果要重定向到另一頁變化

window.location="Path" 
+0

我用它,但它也沒有工作。 – user2640393

+0

它必須至少與window.location =「admin2.php」一起工作,否則會出現一些錯誤消息? – Momo1987

+0

它給了我一個沒有任何信息填充數據庫的空表,只是標籤(html)。 – user2640393

0

試過這種?

if (data.lastIndexOf("success") >= 0) { 
    // no errors 
    alert("Student was dropped successfully"); 
    window.location = window.location; 
} 
+0

我已經使用過,但它不起作用。它只是重新加載一個空白頁面。 – user2640393

相關問題