2014-05-21 53 views
1

一點背景帖子總數:我建立一個運輸系統的一所學校。管理員可以添加地點來配置路線。我有一個只是給了一個文本框中添加一個地方,添加按鈕將繼續增加更多的文本框,這樣他可以一次添加多個地方。 問題:用戶填寫的數據,如果他願意,他補充說,多達他需要輸入框和發送到控制器。我怎麼知道,他添加了多少個地方。我無法使用JavaScript驗證,原因很少。 我使用PHP,笨計數在控制器

<div class="control-group"> 
       <input type="hidden" name="count" value="1" /> 
       <div class="control-group" id="fields"> 
        <label class="control-label" for="field1">Enter Place/Stop</label> 
        <div class="controls" id="profs"> 
         <div class="input-append"> 
          <input autocomplete="off" class="span10" id="field1" name="place_6" type="text" data-items="8"/><button id="b1" class="btn btn-info add-more" type="button">Add more</button> 
         </div> 
        <br> 
        <small>Press button to add another place</small> 
        </div> 
       </div> 
       </div> 

而jQuery的

$(document).ready(function(){ 
var next = 1; 
$(".add-more").click(function(e){ 
    e.preventDefault(); 
    var addto = "#field" + next; 
    next = next + 1; 
    var newIn = '<br /><br /><input autocomplete="off" class="span10" id="field' + next + '" name="place_' + (next+5) + '" type="text">'; 
    var newInput = $(newIn); 
    $(addto).after(newInput); 
    $("#field" + next).attr('data-source',$(addto).attr('data-source')); 
    $("#count").val(next); 
}); 
}); 
+1

是否輸入字段需要一個獨特的名字嗎?如果不是,簡單地給所有新的和現有的輸入字段名「的地方[]」,然後裏面的PHP,你可以抓住它作爲一個這樣的數組:$ _ POST [「地方」]; 從這裏你只需要對這個鍵進行計數。計數($ _ POST [ '地方']); – karlingen

+0

是的,它具有獨特的名稱,比如,PLACE_1,place_2等。 – crafter

回答

3

確保新的和現有的輸入與結束定名爲「[]」,而不是一個數字,你會得到你的$ _POST中的一個數組。 此:

<input type="text" name="places[]" /> 

會給你:

$_POST['places']; # array() with all posted inputs 

並從那裏你可以只是做一個count()

count($_POST['places']); 
+0

真棒;)非常感謝@karlingen – crafter

+1

我的榮幸@crafter :) – karlingen