2015-06-22 151 views
4

我不確定如何說出這個問題,但我會盡我所能。 我有一個從用戶那裏收集關於就業歷史數據的表單。此刻我的形式如下:html表單輸入 - 每個輸入字段的多個答案

<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>"; 

我相信有更好的方法來做到這一點,但我無法在網上找到答案或解決。我的大部分搜索都會返回關於複選框或多個提交按鈕的結果(對我沒有幫助)。請幫助

+2

在按一下按鈕,你需要所需的控制添加到頁面並跟蹤了多少次的用戶已添加它。然後這必須由您的服務器端腳本處理。還有一件事,您需要將您的字段名稱從pastEmployers更改爲pastEmployers_1,pastEmployers_2等等,以便每次點擊 –

+1

您可以使用javascript,每當用戶單擊「添加其他作業」時,當前表單將通過以下方式發送到您的服務器ajax和一個新的表單被生成。您應該考慮使用'UPSERT's將這些作業一個接一個地插入到您的數據庫中。這裏是一個類似的例子(我自己的):[http://bvolley.herokuapp.com/](http://bvolley.herokuapp.com/) – Hamed

回答

1

首先改變你的表格,並使用addAnotherJob()來創建第一個span(使用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/

+0

謝謝堆dhi_m!您發佈的鏈接正在做我想在我的網頁上做的事!我已經玩了jsfiddle中的代碼,我想我已經開始理解了,但是當我複製粘貼代碼到我的編輯器中並保存文件時,它將失去「添加」功能(不知道爲什麼)。無論如何,爲了讓我走上正確的道路,你們一直非常有幫助。感謝堆。 – Tunna182