2014-10-28 2 views
2

보기 양식 제출 (파일 형식 및 텍스트 유형을 갖는) : 그것을 var_dump($_POST['active_board_data']);를 제출 한 후PHP 다차원 배열 입력

<div> 
    <input type='file' name="active_board_data[pictures][]"> 
    <input type='text' name="active_board_data[name][]"> 
    <input type='text' name="active_board_data[description][]"> 
</div> 
<div> 
    <input type='file' name="active_board_data[pictures][]"> 
    <input type='text' name="active_board_data[name][]"> 
    <input type='text' name="active_board_data[description][]"> 
</div> 
<div> 
    <input type='file' name="active_board_data[pictures][]"> 
    <input type='text' name="active_board_data[name][]"> 
    <input type='text' name="active_board_data[description][]"> 
</div> 

array (size=3) 
    'name_description_input' => 
    array (size=3) 
     0 => string '' (length=0) 
     1 => string '<p>sdfv</p>' (length=11) 
     2 => string '' (length=0) 
    'relevant_details_description_input' => 
    array (size=3) 
     0 => string '<p>dsrvsd</p>' (length=13) 
     1 => string '' (length=0) 
     2 => string '<p>sdfvr</p>' (length=12) 
    'pictures' => 
    array (size=1) 
     0 => string '' (length=0) 

그리고 var_dump($_FILES['active_board_data']);

array (size=5) 
    'name' => 
    array (size=1) 
     'pictures' => 
     array (size=3) 
      0 => string 'active_trustees_26-Oct-2014__08_10_00__25408.jpg' (length=48) 
      1 => string 'active_trustees_26-Oct-2014__08_10_18__7037.jpg' (length=47) 
      2 => string 'active_trustees_26-Oct-2014__08_10_18__3779.jpg' (length=47) 
    'type' => 
    array (size=1) 
     'pictures' => 
     array (size=3) 
      0 => string 'image/jpeg' (length=10) 
      1 => string 'image/jpeg' (length=10) 
      2 => string 'image/jpeg' (length=10) 
    'tmp_name' => 
    array (size=1) 
     'pictures' => 
     array (size=3) 
      0 => string 'C:\wamp\tmp\php128F.tmp' (length=23) 
      1 => string 'C:\wamp\tmp\php12A0.tmp' (length=23) 
      2 => string 'C:\wamp\tmp\php12B0.tmp' (length=23) 
    'error' => 
    array (size=1) 
     'pictures' => 
     array (size=3) 
      0 => int 0 
      1 => int 0 
      2 => int 0 
    'size' => 
    array (size=1) 
     'pictures' => 
     array (size=3) 
      0 => int 49543 
      1 => int 52657 
      2 => int 29884 
을 보여줍니다

맞습니까? 방법은 양식 제출 후 PHP에서 동일한 배열에 파일과 텍스트를 가지고 있나요? 또는 마크 업을 변경해야합니까? Notes :div을 동적으로 생성합니다. 도와주세요. 미리 감사드립니다. 이 enter image description here

+1

예, 여러 입력란에 대해 올바른 입력입니다. –

+0

하지만 파일과 텍스트를 모두 입력하면 어떻게 게시 된 데이터를 가질 수 있습니까? – Sujit

+0

form 태그에'enctype = "multipart/form-data"를 설정 했습니까 (그 부분을 보이지 않습니다)? 그것은 파일을 게시 할 때 필요하기 때문입니다. 또한, 파일은 $ _POST에 나타나서는 안되며, $ _FILES에 나타날 것입니다. 그러나 이름/구조는 첫 번째 파일이 첫 번째 이름/설명 ...과 상관 관계가있을 때와 거의 같습니다. –

답변

2

당신은 여전히 ​​두 가지를 동시에 액세스 할 수 있지만 대신 foreach 구조를 사용하여, 당신은이 같은 for 구조, 뭔가 사용합니다 :

$szFiles = sizeof ($_FILES['active_board_data']['name']['pictures']); 
for ($i=0; $i<$szFiles; $i++) 
{ 
    $file_name = $_FILES['active_board_data']['name']['pictures'][$i]; 
    $name  = $_POST['active_board_data']['name'][$i]; 
    $description = $_POST['active_board_data']['description'][$i]; 
} 
을 여기 양식의 사진을 제출하는 것입니다

제게는 프레임 워크의 가장 좋은 부분은 CI 파일 업 로더 헬퍼 시스템 인 https://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html과 같은 헬퍼 기능을 사용하는 것입니다.

+0

사실 저는 앨범을 만들어야합니다. 사진, 이름 및 설명이 제공됩니다.이 필드는 '필요하지 않습니다'때로는 사진을 제공 할 수 없거나 설명이 없기 때문에 필요하지 않습니다. 어떻게 행에 이름과 설명 만 있거나 해당 행에 그림과 이름 만 있으면 정보를 얻을 수 있습니까? @ 한스. 나는 내 문제를 이해하게되기를 바랍니다. 답으로 그 문제를 해결할 수 있습니까? – Sujit

+0

예, 각 양식의 [] 사이에 숫자를 추가하여'active_board_data [pictures] [0]','active_board_data [name] [0]'등과 같이 보이게 할 수 있습니다. 대신 _POST 필드를 사용하십시오. – Hans

+0

@Hans는 위에서 언급 한 문제에 대한'view' 및'controller' 코드로'Answer'를 개선 할 수 있습니까? – Sujit