2015-11-24 232 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] []

問題解決的索引。