簡體   English   中英

刪除按鈕不起作用,必須刷新頁面才能查看更新的數據庫結果

[英]Delete button doesn't work and have to refresh page to see updated database results

因此,每當我單擊添加按鈕並更新數據庫時,都必須刷新頁面以查看結果,而不是單擊“更新數據庫”后頁面自動刷新。

另外,我的刪除按鈕根本不起作用。 請幫助D:

 <!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8' />
    <title>Movie Project</title>
</head>
<body>
    <h1 style='text-align:center;'>Movie Collection Database</h1>
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method='post'>
        <table align='center' border='0' cellpadding='3'>
            <tr>
            <?php
                $fieldsArray = array("Title", "Studio", "Rating", "Pub. Year", "IMDB Rating", "Run Time(min)", "Add");
                echo "<tr>";
                for($i=0;$i<7;$i++)
                    {
                        echo "<td>". $fieldsArray[$i]. "</td>";
                    }//end for
                echo "</tr>";
                ?>
            </tr>
        <tr>
            <td colspan='1' style='text-align:center'>
                <input type="text" name="title" value="Movie Title">
            </td>
            <td>
                <input type="text" name="studName" value="Studio Name">
            </td>

            <td>
                <select name="movieRating">
                    <option value="G">G</option>
                    <option value="PG">PG</option>
                    <option value="PG-13">PG-13</option>
                    <option value="R">R</option>
                    <option value="NC-17">NC-17</option>
                    <option value="Not Rated">Not Rated</option>
                </select>
            </td>
            <td>
                <input type="text" name="pubYear" value="2015">
            </td>

            <td>
                <input type="number" name="IMDBRating" value="10.0">
            </td>
            <td>
                     <input type="number" name="time" value="0">
            </td>
            <td>
                     <input type="checkbox" name="addBox">
            </td>
        </tr>   
        </table>
        <table align='center'>
            <tr>
                <td>
                    <input type="submit" name="submit" value="Update Database"> 
                </td>
            </tr>
        </table>
    </form>

    <?php
    echo "<table  align = 'center', border = '1' >";
    try
    {
        $db = new PDO("mysql:host=localhost;dbname=buckel", "buckel", "12345");
    }
    catch (PDOException $error)
    {
        die("Connection failed: ". $error->getMessage());
    }
    try 
    {
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch (PDOException $error) 
    {
        $db->rollback();

        echo "Transaction not completed: " . $error->getMessage();
    }


    include_once("Function.php");
    if($_SERVER['REQUEST_METHOD']==="POST")
    {
        Delete($db);
        $fieldsArray = array("Title", "Studio", "Rating", "Pub. Year", "IMDB Rating", "Run Time(min)", "Delete" );
        echo "<tr>";
        for($i=0;$i<7;$i++)
            {
                echo "<td>". $fieldsArray[$i]. "</td>";
            }//end for
        echo "</tr>";

        $query = "SELECT * FROM movie";
        $statement = $db->prepare($query);
        $statement->execute();
        foreach(Prepare($db) as $row)
        {
            echo "<tr><td>" .$row['title'] . "</td>";
            echo "<td>" .$row['studio'] . "</td>";
            echo "<td>" .$row['rating'] . "</td>";
            echo "<td>" .$row['pub_year'] . "</td>";
            echo "<td>" .$row['imdb_rating'] . "</td>";
            echo "<td>" .$row['run_time'] . "</td>";
            echo "<td><input type='checkbox' name='". $row['id']. "' value='". $row['id']. "'>Delete</td></tr>";

        }//end foreach

        echo "</table>";
        if(isset($_POST['addBox']))
        {
            $title=$_POST['title'];
            $studio=$_POST['studName'];
            $year=$_POST['pubYear'];
            $movieRating=$_POST['movieRating'];
            $IMDBRating=$_POST['IMDBRating'];
            $time=$_POST['time'];
        try{


            $query2= $db->prepare("INSERT INTO movie (id, title, studio, rating, pub_year, imdb_rating, run_time) value (".'NULL'.", '$title','$studio','$movieRating','$year','$IMDBRating','$time')");
                $query2->execute();
            }//end try
        catch(PDOException $error)
            {
            $db->rollback();
            echo "There was an error";
            $db=null;

            die("Connection failed:" . $error->getMessage());
            }//end catch

        }//end if


        if(isset($db))
        $db=null;
    }//end if for whole thing
    ?>
</body>
</html>

這是我正在調用的功能文件

<?php
function Prepare($db)
{
$q = $db->prepare("SELECT * FROM movie");
$q->execute();
return $q->fetchAll();
}//end Prepare(db object)

function Delete($db)
{
$q = $db->prepare("SELECT * FROM movie");
$q->execute();
foreach($q->fetchAll() as $row)
{
    if(array_key_exists($row['id'], $_POST))
    {
        $q = $db->prepare("DELETE FROM movie WHERE movie.id=" . $row['id']);
        $q->execute();
    }//end if

}//end foreach
}//end Delete(db object)

您正在使用自身頁面來打印顯示內容等。

如果要刷新頁面而不重新加載,則必須使用

否則你可以這樣嘗試

使用Javascript

window.location.reload(true); 
// false - Default. Reloads the current page from the cache.
// true - Reloads the current page from the server

這將重新加載頁面。

header("Refresh:0");

我通過將所有PHP放入表單來修復了無法正常工作的刪除部分。 我想php沒有與表單一起提交

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM