[php] PHP에서 POST를 통해 동일한 이름의 여러 입력

게시 할 동일한 이름의 여러 입력을 가져온 다음 PHP에서 액세스 할 수 있습니까? 아이디어는 이것입니다. 다른 정보와 함께 무한한 수의 물리적 주소를 입력 할 수있는 양식이 있습니다. 여러 항목에 걸쳐 각 필드에 동일한 이름을 지정하고 해당 데이터를 게시물을 통해 제출하면 PHP가 액세스 할 수 있습니까?

예를 들어 “xyz”라는 이름의 한 페이지에 5 개의 입력이 있는데 PHP를 사용하여 액세스하려고합니다. 다음과 같이 할 수 있습니까?

    $_POST['xyz'][0]

그렇다면 양식을 통해 무한한 양의 정보를 보내고 “xyz”라는 이름의 항목 배열을 반복하여 서버에서 처리 할 수 ​​있으므로 내 삶이 10 배 더 쉬워 질 것입니다.



답변

입력 이름 변경 :

<input name="xyz[]" value="Lorem" />
<input name="xyz[]" value="ipsum"  />
<input name="xyz[]" value="dolor" />
<input name="xyz[]" value="sit" />
<input name="xyz[]" value="amet" />

그때:

$_POST['xyz'][0] == 'Lorem'
$_POST['xyz'][4] == 'amet'

그렇다면 양식을 통해 무한한 양의 정보를 보내고 “xyz”라는 이름의 항목 배열을 반복하여 서버에서 처리 할 수 ​​있으므로 내 삶이 10 배 더 쉬워 질 것입니다.

이것은 아마도 잘못된 해결책 일 수 있습니다. 분명히 그것은 당신이 보내는 데이터에 달려 있습니다.


답변

HTML에서 이름에 대한 배열을 전달할 수 있습니다.

<input type="text" name="address[]" /> 

이렇게하면 PHP는 주소 배열을받습니다.


답변

Eric의 대답은 맞지만 문제는 필드가 그룹화되지 않았다는 것입니다. 함께 속한 여러 거리와 도시가 있다고 상상해보십시오.

<h1>First Address</h1>
<input name="street[]" value="Hauptstr" />
<input name="city[]" value="Berlin"  />

<h2>Second Address</h2>
<input name="street[]" value="Wallstreet" />
<input name="city[]" value="New York" />

결과는

$POST = [ 'street' => [ 'Hauptstr', 'Wallstreet'],
          'city' => [ 'Berlin' , 'New York'] ];

주소별로 그룹화하려면 Eric이 댓글 섹션에서 언급 한 내용을 사용하는 것이 좋습니다.

<h1>First Address</h1>
<input name="address[1][street]" value="Hauptstr" />
<input name="address[1][city]" value="Berlin"  />

<h2>Second Address</h2>
<input name="address[2][street]" value="Wallstreet" />
<input name="address[2][city]" value="New York" />

결과는

$POST = [ 'address' => [
                 1 => ['street' => 'Hauptstr', 'city' => 'Berlin'],
                 2 => ['street' => 'Wallstreet', 'city' => 'New York'],
              ]
        ]


답변

이것을 찾는 다른 사람들을 위해-입력 이름에 키 값을 설정할 수 있다는 점에 주목할 가치가 있습니다. 동일한 이름 속성을 가진 POSTing Form Fields 의 답변 덕분에 을 따옴표없이 문자열이나 정수를 상호 수도 있습니다.

대답은 PHP로 돌아 오는 키 값을 신경 쓰지 않는다고 가정하지만 name=[yourval]기존 레코드를 참조 할 수 있도록 설정할 수 있습니다 (문자열 또는 정수).


답변

그것은 될 수 있습니다:

echo "Welcome".$_POST['firstname'].$_POST['lastname'];


답변