-1

私はいくつかの Web サイトで自分の問題について検索しましたが、見つけることができませんでした。私が探しているのは、行の削除の成功メッセージで応答が戻った後にページを更新する方法です。マイページ admin2.php には、DB からの管理者の情報と、学生の各行の横にチェックボックスがある学生のテーブル (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(true);」を使用してみましたが、空のページがリロードされます。私の推測では、get メソッドを使用して admin3Response.php から admin2.php にすべての変数を渡す必要がありますが、その方法がわかりません。どんな助けでもいただければ幸いです。

4

2 に答える 2