如何打印HTML代码,以便我只写一次?

时间:2015-12-24 15:14:15

标签: javascript php jquery html

我正在网络应用程序中工作,我正在进行一些重构。

这样做,无论如何,我陷入了两难境地:我在页面中有一些类似的或相同的部分,我只想在一个部分中压缩,以便只进行一次编辑,因为编辑变得很痛苦。 / p>

但怎么办呢?我正在使用php,js和jquery。

用php echos做这件事是一件大事;它很难管理所有括号,无论如何它对我来说并不是最优雅的解决方案,另外,我需要对我打印的东西进行一些控制。

我正在思考一些关于功能的事情,但由于我没有多少经验,所以我真的不知道自己可以在哪里发挥作用。提前谢谢。

编辑:我被问到一些例子。

<form action="insert.php" method="POST" class="big" style="display:none;">
<h3> Insert Contact </h3>
    <fieldset class="col2">
    <!-- Some inputs here -->
    </fieldset>

    <div>
        <input type="submit" value="Send">
        <input type="reset" value="Clean Form">
    </div>
    <input type="text" name="insert" value="1" style="display:none;">
    <input type="text" name="modify" value="1" style="display:none;">
    <input type="text" name="secret" value="<? echo($perm); ?>" class="hidden">
</form>

例如,这是我想在某些页面中添加的表单。在其他一些我不想要的。但是,例如我需要,根据打电话的页面,切换一些参数或更改一些值,这是我认为我可以用PHP包括的事情。

4 个答案:

答案 0 :(得分:3)

您可以使用PHP的include()函数将HTML包含在文件中。

使用您提供的HTML

的示例

form.php的

<form action="insert.php" method="POST" class="big" style="display:none;">
<h3> Insert Contact </h3>
    <fieldset class="col2">
    <!-- Some inputs here -->
    </fieldset>

    <div>
        <input type="submit" value="Send">
        <input type="reset" value="Clean Form">
    </div>
    <input type="text" name="insert" value="1" style="display:none;">
    <input type="text" name="modify" value="1" style="display:none;">
    <input type="text" name="secret" value="<? echo($perm); ?>" class="hidden">
</form>

的header.php

<div>Hello World!</div>
<?php $value = 10; ?>

的index.php

<html>
    <head>
    </head>
    <body>
        <?php include(header.php); ?>
        <div>This is some content.  The number is <?php echo($value); ?></div>
        <?php include(form.php); ?>
    </body>
</html>

输出HTML

<html>
    <head>
    </head>
    <body>
        <div>Hello World!</div>
        <div>This is some content.  The number is 10</div>
        <form action="insert.php" method="POST" class="big" style="display:none;">
        <h3> Insert Contact </h3>
        <fieldset class="col2">
        <!-- Some inputs here -->
        </fieldset>

        <div>
            <input type="submit" value="Send">
            <input type="reset" value="Clean Form">
        </div>
        <input type="text" name="insert" value="1" style="display:none;">
        <input type="text" name="modify" value="1" style="display:none;">
        <input type="text" name="secret" value="<? echo($perm); ?>" class="hidden">
        </form>
    </body>
</html>



如果要在两种不同的表单中进行选择,可以使用以下任何一种方法进行选择:

方法1:在不同页面上包含相关表格

insert.php

<?php include("insert-form.php"); ?>

edit.php

<?php include("edit-form.php"); ?>

方法2:根据条件

包含相关表格

的index.php

<?php
$formchoose = "insert";

if($formchoose == "insert") {
    include("form-insert.php");
} else {
    include("form-default.php");
}
?>

方法3:在include中执行条件(这是您在评论中询问的那个)

的index.php

<?php
$formchoose = "insert";
include(forms.php);
?>

forms.php

switch ($formchoose) {
    case "insert":
        ?>
            <form id="insert-form">
            <!-- form here-->
            </form>
        <?
    break;
    case "edit":
        ?>
            <form id="edit-form">
            <!-- form here-->
            </form>
        <?
    break;
    default:
    break;
}

文档

http://php.net/manual/en/function.include.php

答案 1 :(得分:0)

您可以查看PHP include()(包含示例)

它易于使用,您只需撰写:<?php include 'my_file.php'; ?>

由于您可以在 .php 文件中编写html / js,因此您可以使用它来包含部分页面。

答案 2 :(得分:0)

另一个有助于形成动态形式的想法:

<强> some_dynamic_form.php

<?php
function getDynamic($form)
{
    switch ($form) {
        case 'form1':
            return array('hello', 'world', '1');
        case 'form2':
            return array('hello', 'from', '2');
    }
}

?>

的index.html

<?php
require_once 'some_dynamic_form.php';
$dynamicForm = getDynamic('form1');
?>
<html>
<body>
<form action="#">
    <?php foreach ($dynamicForm as $param): ?>
        <input type="text" name="<?php echo $param ?>" />
    <?php endforeach; ?>
</form>
</body>
</html>

你可以用这个做任何你想要的东西,以使它更好:)创建一个表格类,所以它将是OPP

答案 3 :(得分:-1)

我建议使用MVC方法来分离您的模型(数据),视图和控制器(应用程序的大脑)。

您还应该考虑使用模板引擎,例如Twig。