0

I'd like to show up to 10 email fields to submit on the form but only by selecting options from 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>

The next form shows up depending on the selected form

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

1 回答 1

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了 toemail以便每个字段都有自己唯一的名称。

你也可以像CP510所说的那样做,并添加onchange='this.form.submit()'到选择标签中,这样它就会自动提交,我会将表单提交到同一页面。此含义将选择菜单所在表单的操作设置为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 + '">'); 
    }

}
于 2013-09-04T18:09:37.230 回答