phpmyadmin 在嵌套在html中的echo中显示php

uqcuzwp8  于 2022-11-09  发布在  PHP
关注(0)|答案(3)|浏览(145)

我正在尝试回显一段嵌套了PHP的文本,有人知道怎么回显吗?我试过这样做:

function update_category(){

    global $connection;

    if (isset($_GET['edit'])) {
        $edit_cat_key = $_GET['edit'];

        $query = "SELECT * FROM categories WHERE cat_id = {$edit_cat_key }";
        $edit_cat_query = mysqli_query($connection, $query);

        echo    '<form action="categories.php" method="post">
                    <div class="form-group">
                        <label for="new-cat-title">New name of category</label>
                            <input value="<?php if(isset($cat_title)){echo $cat_title;} ?>" type="text" class="form-control" name="new-cat-title">
                    </div>
                    <div class="form-group">
                        <input class="btn btn-primary" type="submit" name="submit" value="Rename Category">
                    </div>
                </form>';

        while($row = mysqli_fetch_assoc($edit_cat_query)) {
            $cat_title = $row['cat_title'];
            $cat_id = $row['cat_id'];
        }
    }

}

打印:<?php if(isset($cat_title)){echo $cat_title;} ?>
我试过这样:

<input value="' . <?php if(isset($cat_title)){echo $cat_title;} ?> . '" type="text" class="form-control" name="new-cat-title">
qni6mghb

qni6mghb1#

我会这样做(只显示php代码中的echo部分):

echo '<form action="categories.php" method="post">
                <div class="form-group">
                    <label for="new-cat-title">New name of category</label><input value="';

if(isset($cat_title)){echo $cat_title;};
echo '" type="text" class="form-control" name="new-cat-title"></div>
                <div class="form-group">
                    <input class="btn btn-primary" type="submit" name="submit" value="Rename Category">
                </div>
</form>';

这会回显两个字符串(用单引号括起来),并根据条件在它们之间回显变量,同时保持属性值的双引号对不变。

oyt4ldly

oyt4ldly2#

Echo是一个php语句。你用它来显示一个字符串的输出。你需要的是,用?>替换echo ',用</form><?php替换</form>';。这些结束标记(?>)和开始标记(<?php)让你决定你的文档的哪一部分应该作为PHP处理。所以PHP会忽略文档的其余部分。

3gtaxfhh

3gtaxfhh3#

根据Johannes的回答,我设法找到了一个答案。我需要关闭PHP标记,并将其放入while循环中,而不是回显所需的结果。
就像这样:

function update_category(){

        global $connection;

        if (isset($_GET['edit'])) {
            $edit_cat_key = $_GET['edit'];

            $query = "SELECT * FROM categories WHERE cat_id = {$edit_cat_key }";
            $edit_cat_query = mysqli_query($connection, $query);

            while($row = mysqli_fetch_assoc($edit_cat_query)) {
                $cat_title = $row['cat_title'];
                $cat_id = $row['cat_id'];

                ?>
                    <input value="<?php echo $cat_title; ?>" type="text" class="form-control" name="cat_title">
                <?php
        }
    }

}

相关问题