2010-11-13 24 views
0

我不與形式重複自己的:創建一個PHP函數來顯示HTML表單?

<form name="addBlockList" action="" method="post"> 
Välj blockeringsgrad: 
<select name="blockeringsgrad" style="font-size: 12px;"> 
<option value="1">1 - Bilder</option> 
<option value="2">2 - Bilder, Vän, Vägginlägg, PM</option> 
<option value="3">3 - Ingen tillgång till profil</option> 
</select> 
<input type="hidden" name="uID" value="$id"> 
    <br> 
    <input type="submit" value="Lägg till"> 
    </form> 

我想只是調用一個函數,然後它會顯示這個形式。你能做到嗎?而對於uID,我可以有一個參數的功能?

+0

是的,你可以寫一個函數來做到這一點。但是,不要這樣做,最好將表單放在它自己的文件中,並且[include()](http://us3.php.net/manual/en/function.include.php)。 – GreenMatt 2010-11-13 16:54:59

+0

另一種選擇是使用諸如smarty之類的模板引擎。 – GWW 2010-11-13 16:57:19

+0

@GreenMatt是的,但我不能有和參數,當我包括 – Johnson 2010-11-13 16:58:21

回答

4
<?php  
function showForm($uid){ 
    ?> 
    <form name="addBlockList" action="" method="post"> 
    Välj blockeringsgrad: 
    <select name="blockeringsgrad" style="font-size: 12px;"> 
    <option value="1">1 - Bilder</option> 
    <option value="2">2 - Bilder, Vän, Vägginlägg, PM</option> 
    <option value="3">3 - Ingen tillgång till profil</option> 
    </select> 
    <input type="hidden" name="uID" value="<?=$uid?>"> 
    <br> 
    <input type="submit" value="Lägg till"> 
    </form> 
    <?php 
} 

編輯:

如果你想要這個方法返回的形式可以使用輸出緩衝像這樣:

<?php  
function showForm($uid){ 
    ob_start(); 
    ?> 
    <form name="addBlockList" action="" method="post"> 
    Välj blockeringsgrad: 
    <select name="blockeringsgrad" style="font-size: 12px;"> 
    <option value="1">1 - Bilder</option> 
    <option value="2">2 - Bilder, Vän, Vägginlägg, PM</option> 
    <option value="3">3 - Ingen tillgång till profil</option> 
    </select> 
    <input type="hidden" name="uID" value="<?=$uid?>"> 
    <br> 
    <input type="submit" value="Lägg till"> 
    </form> 
    <?php 
    return ob_get_clean(); 
} 
+0

所以當我打電話showForm(1)它會返回的形式? – Johnson 2010-11-13 16:59:39

+0

不,它不會返回它將直接輸出文本的格式。如果你想讓它返回表單的文本,你可以使用輸出緩衝。我編輯了我的答案來舉個例子。 – GWW 2010-11-13 17:00:17

0

或者您可以使用定界符把你的形式進入一個php函數中的字符串:

<?php 

function display_form($uid) { 
$str = <<<EOT 
<form name="addBlockList" action="" method="post"> 
Välj blockeringsgrad: 
<select name="blockeringsgrad" style="font-size: 12px;"> 
<option value="1">1 - Bilder</option> 
<option value="2">2 - Bilder, Vän, Vägginlägg, PM</option> 
<option value="3">3 - Ingen tillgång till profil</option> 
</select> 
<input type="hidden" name="uID" value="$uid"> 
    <br> 
    <input type="submit" value="Lägg till"> 
    </form> 

EOT; 
return $str; 
} 

echo display_form(1); 
?>