2016-10-05 1 views
0

フォームのクローン領域をPHPに追加するには、addをそれぞれ配列に渡す必要があります。選択領域のJQueryクローニングとPHPへのすべての渡し

私のコード

<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 []

と呼ばれると呼ばれているので、どのようにクローニングする場合にのみ、最後の1をキャプチャします名前が違うように名前を編集することはできますか?どのように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'); 

複数選択のための

$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

あなたの名前は次のようになります。あなたがJavaScriptでそれらをこのサーバー側の操作を行い、ページを生成するとき、または名前を変更するか

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

$('[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 
    } 
} 
関連する問題