iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
自我挑戰組

基礎前端+後端網站分享之留言板製作系列 第 24

第二十四天--編輯留言的畫面 、更新留言 與成果展現

  • 分享至 

  • xImage
  •  

今天來介紹

先來製作更新留言的畫面。
新增php檔(edit_form.php)在screen文件夾裡
edit_form.php程式碼

<html>

<head>
    <meta charset="UTF-8">
    <title>Guestbook</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
</head>

<body style="background-color:F0F0F0;">
    <div class="mt-5">
        <h1 class="mt-4 text-center">編輯留言</h1>
        <div class="p-3">
            <form method="POST" action="../php/update_comment.php">
                <?php echo "<p class=\"input-group-text text-light bg-dark\">" . "暱稱:" .  "</p>" ?>
                <div class="input-group mb-3">
                    <div class="input-group-prepend">
                        <span class="input-group-text text-light bg-dark">評論: </span>
                    </div>
                    <textarea class="form-control" name="comment" required="required" cols="40" rows="5" placeholder="輸入評論"></textarea>
                </div>
                <input type="hidden" name="id" value="<?php echo $id ?>"><!-- //?? -->
                <input type="submit" name="submit" class="btn btn-dark" value="修改資料">
            </form>
        </div>
    </div>
    
</body>

</html>

程式碼中的

<input type="submit" value="修改" class="btn btn-dark mx-3" style="float:right">

input這裡是當作按鈕來使用。

原理是透過a和php的echo來製造網址,在edit_form.php中用Post傳遞隱藏的input的id,透過id來找文章,並用SQL來修改文章。


然後是更新留言的程式碼

edit_comment.php程式碼
新增php檔(edit_comment.php)在php文件夾裡

<?php

include("datatable.php");
$id = $_GET['id'];
$statement = editComment($id);

include("../screen/edit_form.php");

新增php檔(update_comment.php)在php文件夾裡
update_comment.php程式碼

<?php

include("datatable.php");
$id = $_POST["id"];
$comment = $_POST['comment'];
$statement = updateComment($id, $comment);
header('Location:/30days/message_board/screen/Home.php');

增加editComment和updateComment函式在datatable.php裡
datatable.php程式碼

function editComment($id)
{
    $db = dbConnect();
    $statement = $db->prepare("SELECT *FROM messageboard WHERE id=?");
    $statement->execute([$id]);
    return $statement->fetchAll(PDO::FETCH_ASSOC);
}
function updateComment($id, $comment)
{
    $db = dbConnect();
    $statement = $db->prepare("UPDATE messageboard SET COMMENT=? WHERE id=?");
    $statement->execute([$comment, $id]);
    return $statement;
}

利用UPDATE messageboard SET COMMENT=? WHERE id=?去更新指定的留言。


成果影片
Yes


回顧下
我們做了

  • 登入註冊帳號
  • 新增留言
  • 刪除留言
  • 更新留言

功能上我們都完成了。

接下來要做什麼?
我們除了要Session應用在登入狀態以外,我要簡單介紹下優化網頁的各種知識,以及加強留言板的功能,如果想深入了解或強化某方面的知識,能在後面幾天了解後去查詢其他人的教學。


上一篇
第二十三天--刪除留言 與成果展現
下一篇
第二十五天--介紹和使用SESSION與留言板實作
系列文
基礎前端+後端網站分享之留言板製作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言