2015-11-24 152 views
0

HTML多维数组到PHP多维数组 - 阵列覆盖

<div id="pkg1-items"> 
 
    <div class="col-md-2 "> 
 
    <label>Item 1 :</label> 
 

 
    </div> 
 
    <div class="col-md-2 "> 
 
    <div class="input-control select " data-role="input"> 
 
     <input name="item[0][name]" type="text " placeholder="Enter Item " required> 
 
    </div> 
 
    </div> 
 
    <div class="col-md-2 "> 
 
    <label>Option 1 :</label> 
 

 
    </div> 
 
    <div class="col-md-2 "> 
 
    <div class="input-control select " data-role="input"> 
 
     <input name="item[0][option1]" type="text " placeholder="Enter Option To Item" required> 
 
    </div> 
 
    </div> 
 
    <div class="col-md-2 "> 
 
    <label>Option 2 :</label> 
 

 
    </div> 
 
    <div class="col-md-2 "> 
 
    <div class="input-control select " data-role="input"> 
 
     <input name="item[0][option2]" type="text " placeholder="Enter Option To Item " required> 
 

 
    </div> 
 
    </div>

脚本动态地将输入

$(document).on('click', 'label[id^="pkg"]', function() { 
      var pkg = this.id; 
      var clickeditem = '#'+this.id +'-items'; 
      i++; 
      $('<div class="clearfix"></div><div class="col-md-2 "> <label>Item : </label></div><div class="col-md-2 "> <div class="input-control select " data-role="input"> <input name="item['+i+']['+'name'+']" type="text " placeholder="Enter Item " required> </div></div><div class="col-md-2 "> <label>Option 1 : </label></div><div class="col-md-2 "> <div class="input-control select " data-role="input"> <input name="item['+i+']['+'option1'+']" type="text " placeholder="Enter Option To Item" required> </div></div><div class="col-md-2 "> <label>Option 2 : </label></div><div class="col-md-2 "> <div class="input-control select " data-role="input"> <input name="item['+i+']['+'option2'+']" type="text " placeholder="Enter Option To Item " required> </div></div>').appendTo(clickeditem); 


      return false; 
    }); 

send.php

$i=0; 
     //$string = ""; 
     $items = array(array()); 
     $item = $_POST['item']; 
     $icnt = count($items); 
     $pkg = $_POST['Packages']; 
     $nop = count($_POST['Packages']); 

     for ($i = 0 ; $i< $icnt ; $i ++) { 
      $items[$i][0] = $item[$i]['name']; 
      $items[$i][1] = $item[$i]['option1']; 
      $items[$i][2] = $item[$i]['option2']; 



     } 
    echo '<br/><hr/>'; 
      print_r($items); 
      echo '<br/><hr/>'; 
    } 

上面给出输出 - Array([0] => Array([0] => item1 [1] => option1 [2] => option2))

假设输入是 - item1,option1,option2。尽管添加了三个或更多输入,但数组被覆盖并仅输出最后一个值。我如何在php中使用动态多维数组。如果我使用特定的行和列来定义数组,上面的代码就可以正常工作。

+0

声明哪里?全球范围内? –

+0

'var_dump($ _ POST)',检查真正收到的是什么。你如何提交表格?正常形式的点击提交或ajax调用? –

+0

'i'的值是什么:input name =“dpkg ['+ i +'] ['+'item'+']”你没有将'i'设置为任何值,所以它们都具有相同的值名称? –

回答

0
$items[$i][] = $item[$i]['name']; 
     $items[$i][] = $item[$i]['option1']; 
     $items[$i][] = $item[$i]['option2']; 

除去从$项[$ i] [0]至$项[$ i] []

问题解决的索引。