2017-04-19 74 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有人對你的答案進行了低估,它絕對不是我。':(' –