我尝试制作一个表单,允许用户在表单中添加或删除输入(文本框),如果他们点击了" +"或" - "按钮。
现在它只会让我添加一个框(并删除它),但我不能添加更多。
编辑 - 我使用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>';
?>
答案 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>';
?>
我没有对此进行测试,只是为了向您展示它背后的想法。