【问题标题】:run PHP include in a PHP echo在 PHP 回显中运行 PHP 包含
【发布时间】:2018-05-09 17:24:24
【问题描述】:

即使对我来说听起来也很奇怪,但基本上我需要的是在 echo 中包含一个 php 文件。不幸的是,我无法在 include 之前结束 echo 并在此之后继续它,因为所有这些都是 while 语句的一部分。

如果我像下面的代码那样做,在被视为注释的 html 中。

希望你能帮我弄清楚。

<?php
include('connect.php');
$nrcrt=1;
$sql="SELECT Cod, Nume, Categorie, Tumb, Tabel, Descriere FROM produse";
$sqlcateg="SELECT categ FROM categorii";
$resultcateg=$conn->query($sqlcateg);
$result=$conn->query($sql);

if($result->num_rows>0)
{
    while($row=$result->fetch_assoc())
        {   
            echo    '<tr>
                        <td>'.$nrcrt.'</td>
                        <td>'.$row['Cod'].'
                                <script type="text/javascript">
                                function editcod'.$nrcrt.'() {
                                var x = document.getElementById("fieldscod'.$nrcrt.'");
                                if (x.style.display === "none") {   
                                    x.style.display = "block";
                                } else {
                                    x.style.display = "none";
                                }
                                };
                                </script>
                                <br> <br> 
                                <button onclick="editcod'.$nrcrt.'()">Editare</button>
                                <br>
                                <div id="fieldscod'.$nrcrt.'"hidden><input type="text" id="fieldupdatecod" value="'.$row['Cod'].'">
                                <br>
                                <input id="updatecod" type="submit" value="Update"></div>
                        </td>
                        <td>'.$row['Nume'].'
                                <script type="text/javascript">
                                function editnume'.$nrcrt.'() {
                                var x = document.getElementById("fieldsnume'.$nrcrt.'");
                                if (x.style.display === "none") {   
                                    x.style.display = "block";
                                } else {
                                    x.style.display = "none";
                                }
                                };
                                </script>
                                <br> <br>
                                <button onclick="editnume'.$nrcrt.'()">Editare</button>
                                <br>
                                <div id="fieldsnume'.$nrcrt.'" hidden><input type="text" id="fieldupdatenume" value="'.$row['Nume'].'">
                                <br>
                                <input id="updatenume" type="submit" value="Update"></div>
                        </td>

这就是问题所在。

                            <td>'.$row['Categorie'].'
                                <script type="text/javascript">
                                function editcateg'.$nrcrt.'() {
                                var x = document.getElementById("fieldscateg'.$nrcrt.'");
                                if (x.style.display === "none") {   
                                    x.style.display = "block";
                                } else {
                                    x.style.display = "none";
                                }
                                };
                                </script>
                                <br><br>
                                <button onclick="editcateg'.$nrcrt.'()">Editare</button>
                                <br>
                                <div id="fieldscateg'.$nrcrt.'" hidden>

                                <?php include("_include/php/readcateg.php");?>

                                <br>
                                <input id="updatecategorie" type="submit" value="Update"></div>
                        </td>
                        <td>'.$row['Descriere'].'
                                <script type="text/javascript">
                                function editdesc'.$nrcrt.'() {
                                var x = document.getElementById("fieldsdesc'.$nrcrt.'");
                                if (x.style.display === "none") {   
                                    x.style.display = "block";
                                } else {
                                    x.style.display = "none";
                                }
                                };
                                </script>
                                <br>
                                <button onclick="editdesc'.$nrcrt.'()">Editare</button>
                                <br><br>
                                <br>
                                <div id="fieldsdesc'.$nrcrt.'" hidden><textarea rows="5" id="fieldupdatedescriere">'.$row['Descriere'].'</textarea>
                                <br>
                                <input id="updatedescriere" type="submit" value="Update"></div>
                        </td>
                        <td><img src="_include/hfs/tumb/'.$row['Tumb'].'">
                                <script type="text/javascript">
                                function edittumb'.$nrcrt.'() {
                                var x = document.getElementById("fieldstumb'.$nrcrt.'");
                                if (x.style.display === "none") {   
                                    x.style.display = "block";
                                } else {
                                    x.style.display = "none";
                                }
                                };
                                </script>
                                <button onclick="edittumb'.$nrcrt.'()">Editare</button>
                                <br>
                                <div id="fieldstumb'.$nrcrt.'" hidden>
                                <input type="file" name="tumb" id="fileToUpload">
                                <input id="updatetumb" type="submit" value="Update"></div>
                        </td>
                        <td><img src="_include/hfs/tabel/'.$row['Tabel'].'">
                                <script type="text/javascript">
                                function edittabel'.$nrcrt.'() {
                                var x = document.getElementById("fieldstabel'.$nrcrt.'");
                                if (x.style.display === "none") {   
                                    x.style.display = "block";
                                } else {
                                    x.style.display = "none";
                                }
                                };
                                </script>
                                <button onclick="edittabel'.$nrcrt.'()">Editare</button>
                                <br>
                                <div id="fieldstabel'.$nrcrt.'" hidden>
                                <input type="file" name="tabel" id="fileToUpload">
                                <input id="updatetabel" type="submit" value="Update"></div>
                        </td>
                        <td>
                            <input id="sterge" type="submit" value="Sterge">
                        </td>
                    </tr>';
            $nrcrt=$nrcrt+1;
        }
}
    else 
    { echo "0 results";}

?>

【问题讨论】:

  • “很遗憾,我无法在包含之前结束回显并在此之后继续执行” - 但您可以先将其放入字符串 var 中,然后在最后回显.

标签: php html include comments echo


【解决方案1】:

您应该使用 php include 和依赖脚本创建一个完整的字符串文本作为字符串 init 然后eval 它。

例如:

 $str =    '
<div>
    <?php include("_include/php/readcateg.php");?>
    <?php  echo $var; ?>
</div>';
echo eval($str);

【讨论】:

  • 虽然这可能有效,但我不建议在任何地方使用eval
  • 不推荐在 php 之间回显 html 和在 html 之间使用 php :)
  • 确实如此! (添加更多单词只是为了超过评论的最低限度......)
  • 我试图让它按照你的方式工作,但它似乎不起作用,也许我做错了什么,因为这是我得到的错误:解析错误:语法错误,意外'
猜你喜欢
  • 2013-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多