2016-03-08 30 views
1

我想在一個頁面和一個表單上處理多個multi select相同名稱的框/下拉菜單。它們具有相同的名稱,因爲這些下拉框/框正在動態添加。我的問題是如何單獨檢索每個選擇框的數據。它顯示這樣的結果:從多個多選擇下拉列表中檢索具有相同名稱的數據的一種形式

Array(
     [0] => M 
     [1] => T 
     [2] => W 
) 

但我想這樣

Array 
    (
    [0] => Array(
       [0] => M 
       [2] => T 
      ) 
    [1] => Array(
       [0] => W 
      ) 
) 

我想這段代碼的結果:

<td class="v-align-middle semi-bold sorting_1"> 
          <div class="form-group form-group-default form-group-default-select2 full-width days" id="111"> 
            <label>SELECT DAYS</label> 
            <select id="dw" name="days[]" class="full-width select2-offscreen" data-init-plugin="select2" multiple="" tabindex="-1"> 
             <option value="M">Monday</option> 
             <option value="T">Tuesday</option> 
             <option value="W">Wednesday</option> 
             <option value="Th">Thursday</option> 
             <option value="F">Friday</option> 
             <option value="Sa">Saturday</option> 
             <option value="Su">Sunday</option> 
            </select> 

          </div> <br/> 
         </td> 
         <td> 

這是我使用的克隆代碼我的桌子:

$('.add-ins').on('click', function(){ 
    var selfId = $(this).attr('id'); 
    var tId = $(this).parent().parent().find('table').attr('id'); 
    var lastId = $('.timings#'+tId+' tbody tr:visible:last').attr('id'); 
    lastId++; 
    $('select').select2('destroy'); /* destroy select2 from select tag and then clone it */   
    var clonerow = $('.timings#'+tId+' tbody tr:visible:last').clone(true, true).attr('id', lastId); 
    clonerow.appendTo('.timings#'+tId+' tbody'); 
    $('select').select2(); /* enable Select2 on the select elements */ 
}); 

PHP代碼:

$days = $_POST['days']; 
    foreach($days as $value){ 
     echo $value; 
     foreach($value as $week){ 
    echo $week; 
    } 
    } 

或者簡單:

print_r($days); 

請幫我在這方面。如果有任何其他解決方案,例如爲每個選擇框使用不同的名稱,請告訴我如何使用php $_POST發佈它們,因爲我無法弄清楚用戶將添加多少個多選框。

您的建議將不勝感激。提前致謝。

親切的問候

+0

請出示你的'HTML'代碼,以便我們可以檢查 – Parixit

+0

我已經在我的問題添加HTML,請檢查。 – Aisha

+0

如果動態添加,您能顯示生成它的代碼嗎? – Morten

回答

3

在HTML代碼,請像

<select id="dw" name="days[0][]" class="full-width select2-offscreen" data-init-plugin="select2" multiple="" tabindex="-1"> 
<option value="M">Monday</option> 
<option value="T">Tuesday</option> 
<option value="W">Wednesday</option> 
<option value="Th">Thursday</option> 
<option value="F">Friday</option> 
<option value="Sa">Saturday</option> 
<option value="Su">Sunday</option> 
</select> 

<select id="dw" name="days[1][]" class="full-width select2-offscreen" data-init-plugin="select2" multiple="" tabindex="-1"> 
<option value="M">Monday</option> 
<option value="T">Tuesday</option> 
<option value="W">Wednesday</option> 
<option value="Th">Thursday</option> 
<option value="F">Friday</option> 
<option value="Sa">Saturday</option> 
<option value="Su">Sunday</option> 
</select> 
+0

是的,它的工作原理。那很棒。你拯救了我的一天。非常感謝。 – Aisha

+0

不客氣Aisha。 –

1

你應該使用像下面的樣子:

1: 
<select id="dw" name="days[0][]" > 
    <option value="M">Monday</option> 
</select> 

2: 
<select id="dw" name="days[1][]" > 
    <option value="M">Monday</option> 
</select> 

如果插入使用javascript然後採取變量設置爲0/1/2...的選擇name選擇框。

POST數據:

Array 
(
    [0] => Array(
      [0] => M 
      [1] => T 
     ) 
    [1] => Array(
      [0] => W 
     ) 
) 
+0

非常感謝。它的工作。 – Aisha

相關問題