0

我正在尝试使用 PHP 制作用于将文章发布到新闻页面的表单。目标是用 Markdown 编写这些文章,将它们存储在数据库中,并在显示之前用 Parsedown 解析它们。

我的一个想法是添加一个预览按钮,将表单发布到它自己的页面以在发布之前显示解析的文本(因为用户不是经常使用 Markdown 的人,所以她可以在发送之前检查错误)。此外,我不希望在单击按钮时字段的内容消失,因此我想将 POST 值重新插入其中。不过,这行不通。

    <div class="presentation">
        <form id="actuform" action="" style="text-align: center;">
            <label for="title">Title</label>
            <br>
            <input type="text" name="title" id="title" placeholder="Title" value=<?php echo '"'.$_POST['title'].'"'; ?> required>
            <br>
            <label for="content">Body</label>
            <br>
            <textarea class="actusub" name="content" id="content" placeholder="Body" style="width: 100%; max-width: 80%; min-height: 350px; resize: none;" required><?php echo $_POST['content']?></textarea>
            <br>
            <button type="button" onclick="handleSubmit(0)">Post</button>
            <button type="button" onclick="handleSubmit(1)">Preview</button>
        </form>
        <script>
            form = document.getElementById("actuform");
            function handleSubmit(choice) {
                if(choice==0){ 
                    form.action="actu_post.php"; // publish
                } else {
                    form.action=""; // preview
                };
                form.submit();
            }
        </script>
    
        <div"> <!--Markdown preview-->
            <?php
                $Parsedown = new Parsedown();
                $Parsedown->setSafeMode(true);
                echo $Parsedown->text($_POST['content']);
            ?>
        </div>
    </div>

当我运行它时,URL 会显示 POST 值,但这些字段是空白的,并且不会出现预览。我不确定我应该如何进行调试。我有什么明显的遗漏吗?

4

1 回答 1

2

您必须指定表单正在执行 POST 请求,如果您不这样做,则默认情况下会发出 GET 请求。

<form method="POST" id="actuform" action="" style="text-align: center;">
于 2021-06-01T13:39:11.260 回答