使用函数添加代码

时间:2017-04-19 09:34:37

标签: php html

我正在尝试通过提交按钮插入一些代码。 总而言之,我希望这个按钮调用一个PHP函数来添加一段HTML代码。这是我的功能:

function ajouterStag(){
print_r('<form method="post" action="AjoutFormation.php">
            <label>Nom d\'un stagiaire : </label><input type="text" name="ajoutStagiaireNom"/><br/>             
            <label>Mail du stagiaire : </label><input type="text" name="ajoutStagiaireMail"/><br/>
            <label>Telephone du stagiaire : </label><input type="text" name="ajoutStagiaireTel"/><br/>
        </form>');
}

以下是我如何使用它:

            <h5>Et ses employés ?</h5>
            <label>Nom d'un stagiaire : </label><input type="text" name="ajoutStagiaireNom"/><br/>              
            <label>Mail du stagiaire : </label><input type="text" name="ajoutStagiaireMail"/><br/>
            <label>Telephone du stagiaire : </label><input type="text" name="ajoutStagiaireTel"/><br/>
        <form method="post" action="AjoutFormation.php">
            <?php ajouterStag(); ?> //Right there
            <input type="submit" value="Ajouter un stagiaire"/>
        </form>

结果,我只有两次相同的标签(你可以看到的树),我的按钮什么都不做。 我是PHP的初学者,不知道该怎么做。

你介意帮帮我吗?

2 个答案:

答案 0 :(得分:1)

<强>更新

如果您想要重复其他表单元素,那么您应该使用 JavaScript 。这就像开始使用jQuery(一个很棒的JS库):

$(function () {
  $(".add").click(function (e) {
    e.preventDefault();
    $(this).before('<label>Nom d\'un stagiaire : </label><input type="text" name="ajoutStagiaireNom"/><br/><label>Mail du stagiaire : </label><input type="text" name="ajoutStagiaireMail"/><br/><label>Telephone du stagiaire : </label><input type="text" name="ajoutStagiaireTel"/><br/><br/>');
  });
});
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<h5>Et ses employés ?</h5>
<form method="post" action="AjoutFormation.php">
  <label>Nom d'un stagiaire : </label><input type="text" name="ajoutStagiaireNom[]"/><br/>              
  <label>Mail du stagiaire : </label><input type="text" name="ajoutStagiaireMail[]"/><br/>
  <label>Telephone du stagiaire : </label><input type="text" name="ajoutStagiaireTel[]"/><br/>
  <br/><a href="#" class="add">Add Another Set</a><br/>
  <input type="submit" value="Ajouter un stagiaire"/>
</form>

使用上述方法时,需要以数组方式将数据发送到服务器。像上面一样。有关所有输入元素,请参阅name

如果这是你想要的,请告诉我?

  

我正在尝试通过提交按钮插入一些代码。总而言之,我希望这个按钮调用一个PHP函数来添加一段HTML代码。

PHP是一种服务器端语言,在客户端代码呈现之前执行。这对于PHP是不可能的,但是您需要使用一些客户端编程语言,例如JavaScript。

为此,您只需加载隐藏表单元素的文件,然后单击按钮,即可使用JavaScript进行显示。

<h5>Et ses employés ?</h5>
<form method="post" action="AjoutFormation.php">
<div style="display: none;" id="hidform">
  <label>Nom d'un stagiaire : </label><input type="text" name="ajoutStagiaireNom" /><br/>
  <label>Mail du stagiaire : </label><input type="text" name="ajoutStagiaireMail" /><br/>
  <label>Telephone du stagiaire : </label><input type="text" name="ajoutStagiaireTel" /><br/>
  </div>
  <a href="#" onclick="hidform.style.display = 'block'; return false;">Show Form</a><br/>
  <input type="submit" value="Ajouter un stagiaire" />
</form>

答案 1 :(得分:-1)

首先从你的html中删除HTML,以便我们通过你的php函数来控制它。

删除它:

<h5>Et ses employés ?</h5>
            <label>Nom d'un stagiaire : </label><input type="text" name="ajoutStagiaireNom"/><br/>              
            <label>Mail du stagiaire : </label><input type="text" name="ajoutStagiaireMail"/><br/>
            <label>Telephone du stagiaire : </label><input type="text" name="ajoutStagiaireTel"/><br/>

其次更改您的<?php ajouterStag(); ?>,以便检查按钮是否被点击。

所以它会变成<?php if(@$_POST) { ajouterStag(); } ?>

这样,显示HTML代码的功能只有在发布按钮时才会运行。

所以你的最终代码是:

<?php if(@$_POST) { ajouterStag();  } ?> 
<form method="post" action="AjoutFormation.php">        
    <input type="submit" value="Ajouter un stagiaire"/>
</form>