使用PHP动态添加文本框

时间:2012-02-16 02:35:20

标签: php forms textbox

我尝试制作一个表单,允许用户在表单中添加或删除输入(文本框),如果他们点击了" +"或" - "按钮。

现在它只会让我添加一个框(并删除它),但我不能添加更多。

编辑 - 我使用GET使其工作。如果您有兴趣,请点击这里。

<?
$j=1; //sets the value initially when the page is first loaded

if($_GET['num'] >= 1 ){
    $j = mysql_real_escape_string($_GET['num'])+1;
}

//displays the text boxes
echo '<table>';
for($i = 0; $i<$j; $i++){
    echo '<tr><td><input type="textbox" name="input[]"></td></tr>';
}
    //displays the + and - buttons to add or remove text boxes
$a = $j-2;

echo '</table>';
echo '<a href="helplist.php?num='.$j++.' "> + </a>';
echo '<a href="helplist.php?num=' .$a. '"> - </a>';
?>  

1 个答案:

答案 0 :(得分:3)

您需要将$ j的值存储在隐藏的表单字段中。

示例:<input type=hidden value=$j name=j>

<?
if(!isset($_POST['j'])){
    static $j=1;
}
else{
 //j is a reference for $i in the loop. $i will loop while it is less than $j.

if(isset($_POST['plus'])){
    $j = $_POST['j']+1; //by incrementing $j, $i will loop one more time.
}

if(isset($_POST['minus'])){
    if($j < 1){ //if there is only one box the user can't remove it
        $j = $_POST['j']-1;
    }
}   
}
//displays the text boxes
echo '<form method="post">
<input type="hidden" name="j" value="' . $j . '">
<table>';
for($i = 0; $i<$j; $i++){
    echo '<tr><td><input type="textbox" name="input[]"></td></tr>';
    echo 'i='.$i.'<br/>'; //checking value of $i
    echo 'j='.$j.'<br/>'; //checking value of $j
}
    //displays the + and - buttons to add or remove text boxes
echo '<tr><input type ="submit" value="+" name="plus">
      <input type ="submit" value="-" name="minus"></tr></table></form>';   
?>  

我没有对此进行测试,只是为了向您展示它背后的想法。