2017-04-19 77 views
-1

我想通过提交按钮来插入一些代码。总而言之,我希望这个按钮调用一个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的初学者,不知道该怎么做。

你介意帮帮我吗?

+3

'Form'一个'form'里面是一个无效的标记。 –

+1

该功能正在做它应该做的事情。你期待它做什么? –

+0

@Kumar我希望我的按钮调用函数以在需要时添加代码。 – Fefil

回答

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

我建议不要依赖于JavaScript - 它不会被始终呈现,因为您取决于浏览器功能。 –

+0

@西摩斯约定的老板。 ':)' –

+0

谢谢,但是第一:我不了解任何js xD,第二:你的解决方案只显示标签。我想给他们展示我想要的许多时间 – Fefil

-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> 
+0

我不明白一件事:你说我必须删除我的表格标签,但我应该把它放在哪里? – Fefil

+0

对不起,我不清楚。你必须删除你的h5和标签,因为如果按钮被提交,我们将从php中输出它们。表单标签将保持原样。 –

+0

@SimosFasouliotis有人对你的答案进行了低估,它绝对不是我。':(' –