2014-04-30 5 views
0

Я стараюсь, чтобы модель Make/Model/Year работала должным образом ... и хотя у меня есть часть пользовательского интерфейса, которая работает хорошо ... при возврате результатов я в тупикеForm Field Group Array

поля генерируются так:

<div class="input-group"> 
    <input type="text" placeholder="Vehicle Model for This Make" id="PartVehModel0" name="PartVehModel[Chevy]" class="form-control"> 
    <span style="cursor:pointer;" onclick="$(this).parent().remove();$('#vYear' + $(this).parent().find('input').val()).remove();" class="input-group-addon"><i class="fa fa-fw fa-minus-square-o"></i></span> 
    <span onclick="addChildGroup($(this).parent().find('input'), 2, '#vYear');" style="cursor:pointer;" class="input-group-addon"><i class="fa fa-chevron-right fa-fw"></i></span> 
</div> 
<div class="input-group"> 
    <input type="text" placeholder="Vehicle Model for This Make" id="PartVehModel1" name="PartVehModel[Chevy]" class="form-control"> 
    <span style="cursor:pointer;" onclick="$(this).parent().remove();$('#vYear' + $(this).parent().find('input').val()).remove();" class="input-group-addon"><i class="fa fa-fw fa-minus-square-o"></i></span> 
    <span onclick="addChildGroup($(this).parent().find('input'), 2, '#vYear');" style="cursor:pointer;" class="input-group-addon"><i class="fa fa-chevron-right fa-fw"></i></span> 
</div> 

и т.д ...

Когда я пытаюсь сделать var_dump из $_POST['PartVehModel'] я только когда-либо увидеть 1-ый пункт, и ничего другого. Например: я могу поместить в Chevy, Honda, как ... CRV/Civic, и Corvette/Malibu в качестве соответствующих моделей, а затем для каждой модели - тонну лет, но все, что я когда-либо получал, это:

array(2) { 
    [0]=> 
    string(5) "Chevy" 
    [1]=> 
    string(5) "Honda" 
} 

array(2) { 
    ["Honda"]=> 
    string(5) "Civic" 
    ["Chevy"]=> 
    string(6) "Malibu" 
} 

array(4) { 
    ["Civic"]=> 
    string(4) "2003" 
    ["CRV"]=> 
    string(4) "2001" 
    ["Malibu"]=> 
    string(4) "1990" 
    ["Corvette"]=> 
    string(4) "1968" 
} 

Из следующей формы: enter image description here

мой Javascript производящего это:

var $ct = 0; 
function addFormField(which, initialEle, val){ 
var $nField; 
$iEle = $(initialEle); 
$iEle.find('i').removeClass('fa-plus-square-o'); 
$iEle.find('i').addClass('fa-minus-square-o'); 
switch(which){ 
    case 1: // make 
     $iEle.attr('onclick', '$(this).parent().remove();$(\'#vModel\' + $(this).parent().find(\'input\').val()).remove();'); 
     $nField = '<div class="input-group"><input type="text" class="form-control" name="PartVehMake[]" id="PartVehMake'+$ct+'" placeholder="Vehicle Make for This Part" /><span class="input-group-addon" onclick="addFormField(1, this);" style="cursor:pointer;"><i class="fa fa-plus-square-o fa-fw"></i></span><span class="input-group-addon" style="cursor:pointer;" onclick="addChildGroup(\'#PartVehMake'+$ct+'\', 1, \'#vModel\');"><i class="fa fa-chevron-right fa-fw"></i></span></div>';      
     $('#vMake').append($nField); 
     $ct++; 
     break; 
    case 2: // model 
     $iEle.attr('onclick', '$(this).parent().remove();$(\'#vYear\' + $(this).parent().find(\'input\').val()).remove();'); 
     $nField = '<div class="input-group"><input type="text" class="form-control" name="PartVehModel['+val+']" id="PartVehModel'+$ct+'" placeholder="Vehicle Model for This Make" /><span class="input-group-addon" onclick="addFormField(2, this, \'' + val + '\');" style="cursor:pointer;"><i class="fa fa-plus-square-o fa-fw"></i></span><span class="input-group-addon" style="cursor:pointer;" onclick="addChildGroup($(this).parent().find(\'input\'), 2, \'#vYear\');"><i class="fa fa-chevron-right fa-fw"></i></span></div>';      
     $('#' + $iEle.parent().parent().attr('id')).append($nField); 
     $ct++; 
     break; 
    case 3: // year 
     $iEle.attr('onclick', '$(this).parent().remove();'); 
     $nField = '<div class="input-group"><input type="text" class="form-control" name="PartVehYear['+val+']" id="PartVehYear'+$ct+'" placeholder="Vehicle Year for This Model" /><span class="input-group-addon" onclick="addFormField(3, this, \'' + val + '\');" style="cursor:pointer;"><i class="fa fa-plus-square-o fa-fw"></i></span></div>';      
     $('#' + $iEle.parent().parent().attr('id')).append($nField); 
     $ct++; 
     break; 
} 
} 
var $ct1 = 0; 
function addChildGroup(val, which, where){ 
var $val = $(val).val(); 
var $whr = $(where); 
var $nField; 
if($val.length > 0){ 
    switch(which){ 
     case 1: //model 
      $whrID = where.replace('#', '') + $val; 
      $nField = '<div class="input-group"><input type="text" class="form-control" name="PartVehModel[' + $val + ']" id="PartVehModel'+$ct1+'" placeholder="Vehicle Model for This Make" /><span class="input-group-addon" onclick="addFormField(2, this, \'' + $val + '\');" style="cursor:pointer;"><i class="fa fa-plus-square-o fa-fw"></i></span><span class="input-group-addon" style="cursor:pointer;" onclick="addChildGroup($(this).parent().find(\'input\'), 2, \'#vYear\');"><i class="fa fa-chevron-right fa-fw"></i></span></div>';      
      $whr.append('<div id="' + $whrID + '"><h5 style="margin-top:10px;">' + $val + '<span class="fa fa-minus pull-right" style="cursor:pointer;" onclick="$(\'#' + $whrID + '\').remove();"></span></h5>' + $nField + '</div>'); 
      $ct1++; 
      break; 
     case 2: //year 
      $whrID = where.replace('#', '') + $val; 
      $nField = '<div class="input-group"><input type="text" class="form-control" name="PartVehYear[' + $val + ']" id="PartVehYear'+$ct1+'" placeholder="Vehicle Year for This Model" /><span class="input-group-addon" onclick="addFormField(3, this, \'' + $val + '\');" style="cursor:pointer;"><i class="fa fa-plus-square-o fa-fw"></i></span></div>';      
      $whr.append('<div id="' + $whrID + '"><h5 style="margin-top:10px;">' + $val + '<span class="fa fa-minus pull-right" style="cursor:pointer;" onclick="$(\'#' + $whrID + '\').remove();"></span></h5>' + $nField + '</div>'); 
      $ct1++; 
      break; 
    } 
} 
} 

Итак, как я могу получить это "группировка" вещь, чтобы работать?

+1

'имя = "PartVehModel [Chevy] []"' отметить дополнительные скобки – Steve

+0

, где вы видите дополнительные скобки? или вы заявляете, что мне нужно добавить лишние барды? – Kevin

+0

ах-ха. Хочу добавить это как ответ – Kevin

ответ

1

Вы должны использовать синтаксис массива в форме:

name="PartVehModel[Chevy][]"