如何在PHP和MySQLi中存储其他页面的HTML表单值?

时间:2019-07-02 05:19:08

标签: php html

我已经在phpMyAdmin中创建了一个数据库,其中包含用于数学,物理等主题的表。每个主题在表topic_id中都有一个tb_topic作为主键。每个主题可以有多个视频。管理员可以将视频添加到每个需要topic_id作为表tb_video_management中的外键的主题,以针对某个主题存储视频。

后端: 有一个按钮可以在form.php中添加视频

form.php:

<?php
    $query = "SELECT topic_id, topic_name,aid FROM tb_topic";
    $result = $con->query($query);
    while($query_row = mysqli_fetch_assoc($result)) {?>
        <tr>
            <td><form action='edit.php' method='get'>
                <button type='submit' name='edit' id = 'edit' value='<?php echo $query_row['topic_id'];?>' class='btn btn-success'>EDIT</button><br />
            </form></td>
        </tr>
    <?php 
    } ?>

单击此按钮后,页面将导航到另一个页面“ edit.php”,该页面有2个按钮,一个按钮用于添加新视频,第二个按钮用于查看视频库。

edit.php:

$id = $_GET['edit'];
echo 'topic id----> ' . $id;

<form action='add_video.php' method='get'>
    <button type='submit' name='add' id = 'add' value='<?php echo $id;?>' class='btn btn-success'>ADD NEW VIDEO</button>
</form>
<form action="video.php" method="get">
    <button type="submit" name="goback" id="goback" value="submit" class="btn btn-primary">VIEW GALLERY</button>
</form>

添加视频的课程具有主题名称,详细信息等形式。

add_video.php

$id = $_GET['add'];
echo 'topic id----> ' . $id;

<form action="add_video.php" method="post">
        Video Title: <input type="text" name="video_name"><br />
        Video Detail: <input type="text" name="video_detail"><br />
        Video Question: <input type="text" name="video_question"><br />
        Video Link: <input type="text" name="video_link"><br />

        <input type="submit" name="submit" value = "Submit"><br />
</form>

单击“提交”按钮时,将执行以下代码:

if(isset($_POST['submit'])) {

    if(!(empty($_POST['video_name']) || empty($_POST['video_detail']) || empty($_POST['video_question']) || empty($_POST['video_link']))) {
        $name = $_POST['video_name'];
        $detail = $_POST['video_detail'];
        $question = $_POST['video_question'];
        $link = $_POST['video_link'];
        $insert = "INSERT INTO tb_video_management(topic_id, video_name, video_detail, video_question,video_link) VALUES ('$id','$name','$detail', '$question','$link')";
        if(!mysqli_query($con,$insert))
            echo "error";
        header('location:edit.php');
    }
}

我面临的问题是,当我单击“提交”按钮时,$id中的值丢失了(可能是因为按下了另一个按钮(提交))并且由于没有值而无法插入记录不再用于“ topic_id”。即使按下提交按钮,我也无法解决保持外键值的问题。 到目前为止,我一直在创建额外的表来保存topic_id的值,这绝对不是正确的方法。

1 个答案:

答案 0 :(得分:2)

要在另一页中使用$id,必须将其存储为在提交后仍然存在。可以通过使用hidden字段来实现。

您可以像这样设置$id的值:

<input type="hidden" name="topic_id" value="<?php echo $id?>">

提交并重定向到add_video.php后,您可能会获得与其他字段$id相同的video_detail值。

提交时外观如下:

if(isset($_POST['submit'])) {
    $topic_id = $_POST['topic_id'];
}