在表单显示PHP之前获取价值

时间:2013-09-04 17:49:47

标签: php forms for-loop nested-forms

我想在表单上显示最多10个电子邮件字段,但只能选择1到10个选项。

<form action="" method="post" name="select">
<select name="row">
<option value=1">1</option>
...
<option value="10">10</option
<input type="submit" name="select">
</form>

根据所选表格显示下一个表格

<form name="secondform">
<?php ... ?>  <!--for loop depending on the value above-->
<input name="email>
</form>

1 个答案:

答案 0 :(得分:0)

所以你有你的下拉列表,将该值提交给self或包含此内容的另一个php脚本:

$selected = $_POST['select'];

for($i = 0; $i<$selected; $i++){

     echo "<input type='text' name='email$i'>";

}

$selected是下拉菜单的值。

现在我们有一个for循环。它将$i设置为零然后说$i小于下拉值的值,将1更多添加到$i并运行echo "<input type='text' name='email$i'>";

如您所见,我将$i添加到email,以便每个字段都有自己唯一的名称。

您可以执行的操作与CP510一样,并将onchange='this.form.submit()'添加到select标记,以便自动提交,我会将表单提交到同一页面。这意味着将选择菜单所用形式的动作设置为action="<?php echo $_SERVER['PHP_SELF']; ?>"


强烈建议学习jQuery这样的东西。

这是jQuery(大多数只是简单的javascript)版本......它非常相似:

请确保将其放在html文件的头部:

<script src="http://code.jquery.com/jquery-latest.min.js"
        type="text/javascript"></script>

<强> HTML:

<select id='selected' onchange='addFields();'>
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
    <option value='4'>4</option>
    <option value='5'>5</option>
    <option value='6'>6</option>
    <option value='7'>7</option>
    <option value='8'>8</option>
    <option value='9'>9</option>
</select>

<强>使用Javascript:

function addFields(){

    var selected = $('#selected').val();

    for(var i = 0; i<selected; i++){
         document.write('<input type="text" name="email' + i + '">'); 
    }

}