【问题标题】:html form input - multiple answers for each input fieldhtml 表单输入 - 每个输入字段的多个答案
【发布时间】:2015-09-07 17:56:17
【问题描述】:

我不确定如何准确地表达这个问题,但我会尽力而为。 我有一个表格,它从用户那里收集有关就业历史的数据。目前我的表单如下所示:

<form name="EmploymentHistory" action="Form E.php" method="post">

    <h2>Employment History</h2>
        <label>Last/Current employer</label>
        <input type='text' name='LastCurrentemployer'>
<hr>    <label>Position</label>
        <input type='text' name='Position'>
<hr>    <label>Date Started</label>
        <input type='text' name='DateStarted'>
<hr>    <label>Date Finished</label>
        <input type='text' name ='DateFinished'>
<hr>    <label>Supervised by</label>
        <input type='text' name = 'Supervisedby'>
<hr>    <label>Contact Details for Boss</label>
        <input type='text' name='ContactDetailsForBoss'>

<hr>    <button type='button'>Add another job</button> <br>
<hr>    <input type="submit" value="Next">
    </form>

我的问题是“添加另一个工作”按钮什么也没做。
如何让用户在其就业历史中输入多个职位,以便将每个职位作为新记录输入到我的数据库中,但只需点击一次提交按钮(下一步)?

我正在考虑尝试设置一个数组,然后使用 arraypush 添加每个条目,例如:

$pastemployers = array ();
arraypush $pastemployers(POST_['LastCurrentemployer']);

然后一个循环将每个记录添加为新记录,例如:

for ($x = 0; $x < count(pastemployers); $x++){
echo "<input name='pastemployers" . $x . "' value='" . $pastemployers[$x] . "'> </input>";

我确信有更好的方法来做到这一点,但我无法在网上找到答案或解决它。我的大多数搜索都返回有关复选框或多个提交按钮的结果(对我没有帮助)。请帮忙

【问题讨论】:

  • 点击按钮后,您需要向页面添加所需的控件,并跟踪用户添加了多少次。然后必须由您的服务器端脚本处理。还有一件事,每次点击时,您需要将字段名称从 pastEmployers 更改为 pasteEmployers_1、pasEmployers_2 等等
  • 您可以使用javascript,每次用户单击“添加另一个工作”时,当前表单都会通过ajax 发送到您的服务器并生成一个新表单。您应该考虑使用UPSERTs 将这些作业一个接一个地插入到您的数据库中。这是一个类似的例子(我自己的):http://bvolley.herokuapp.com/

标签: html mysql arrays forms input


【解决方案1】:

首先如下修改你的表单并使用 addAnotherJob() 创建第一个跨度的克隆(使用 jQuery)并更改每个表单字段的 id。提交此表单后,您将获得雇主详细信息数组。

<form name="EmploymentHistory" action="Form.php" method="post">

    <h2>Employment History</h2>
    <span class="span_clone">
        <label>Last/Current employer</label>
        <input type='text' id='LastCurrentemployer_0' name='LastCurrentemployer[]'>
<hr>    <label>Position</label>
        <input type='text' id='Position_0' name='Position[]'>
<hr>    <label>Date Started</label>
        <input type='text' id="DateStarted_0" name='DateStarted[]'>
<hr>    <label>Date Finished</label>
        <input type='text'  id='DateFinished_0' name ='DateFinished[]'>
<hr>    <label>Supervised by</label>
        <input type='text' id='Supervisedby_0' name = 'Supervisedby[]'>
<hr>    <label>Contact Details for Boss</label>
        <input type='text' id='ContactDetailsForBoss_0' name='ContactDetailsForBoss[]'>


<hr>    <button id='add-another-job-0' type='button' onclick= 'addAnotherJob()'>Add another job</button> <br>
</span>
<hr>    <input type="submit" value="Next">
    </form>

请参考此链接:http://jsfiddle.net/ambiguous/LAECx/

【讨论】:

  • 感谢 dhi_m!您发布的链接正是我想要在我的页面上做的事情!我玩过 jsfiddle 中的代码,我想我开始理解了,但是当我将代码复制粘贴到我的编辑器中并保存文件时,它会丢失“添加”功能(不知道为什么)。尽管如此,到目前为止,您在让我走上正确的道路方面一直很有帮助。谢谢大家。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-30
  • 2014-02-26
  • 1970-01-01
相关资源
最近更新 更多