2016-10-05 38 views
0

我需要將表單的克隆區域傳遞給PHP,方法是將每個區域都添加到數組中。JQuery克隆選定區域並將所有內容傳遞給PHP Array

我的代碼

<div class="input-main white_bg cloneneedsanalysis"> 
    <div class="action-input clone-needs-analysis"> 
    <div class="action-input-white-shorter"> 
    <div class="inner-sub-title-less-padding"> 
    <p>Audience Analysis</p> 
    </div> 
    <div class="col-md-12"> 
    <div class="form-group"> 
    <select class="select2 select2-multiple" multiple="multiple" data-placeholder="Choose ..." name="needs_analysis[]"> 
    <option value="">-- Choose Audience Categories --</option> 
    <option value="536"> Finance - - Cash collection </option> 
    <option value="537"> IT - - Comms IT </option> 
    <option value="538"> Strategy - - Strategy team 1 </option> 
    </select> 
    </div> 
    </div> 
    </div> 
    <div class="action-input-plus-needs-analysis"> </div> 
    <div class="action-input-remove-needs-analysis"> </div> 
    </div> 
    </div> 

克隆的作品,但是當我發送通過POST給PHP將只捕獲最後一個,因爲他們都是所謂的叫needs_analysis []

那麼,克隆了當我可以編輯名稱,以便它不同,我怎樣才能讓PHP循環訪問每個數組?

My JQuery;

$(document).on('click', '.clone_needs_analysis_button', function(e) { 
e.preventDefault(); 
$(this).closest('.clone-needs-analysis').clone().insertAfter('.cloneneedsanalysis:last'); 
$(this).closest('.action-input-plus').hide(); 
$(this).closest('.action-input-remove').removeClass('hidden'); 

我的PHP;

$needs_analysis = array(); 
foreach ($_POST['needs_analysis'] as $key => $value) { 
    $needs_analysis[$key]['audience_id'] = $value; 
    $needs_analysis[$key]['created'] = $_POST['updated']; 
    $needs_analysis[$key]['created_by'] = $_POST['updated_by']; 
    $needs_analysis[$key]['solution_id'] = $_POST['solution_id']; 
} 
foreach ($needs_analysis as $needs_analysis_insert) { 
$db->insert('design_needs_analysis', $needs_analysis_insert); 
} 
+0

你的其他輸入是哪裏來的? – madalinivascu

回答

0

您的多選的名字應該是這樣的:

needs_analysis[1][] 
needs_analysis[2][] 

您可以在JavaScript做到這一點的服務器端,產生的頁面時,或重命名:

$('[name="needs_analysis[]"]').each(function(index) { 
    var currentElement = $(this) 
    currentElement.attr('name', 'needs_analysis['+index+'][]') 
}) 

爲了循環訪問PHP中的值,您可以這樣做:

foreach ($_POST['needs_analysis'] as $k=>$v) { 
    //$v represents the value array for a select element 
    foreach ($v as $k2=>$v2) { 
     //do something with each value 
    } 
}