>  기사  >  백엔드 개발  >  배열 모드로 양식 제출

배열 모드로 양식 제출

WBOY
WBOY원래의
2016-08-08 09:31:161049검색

오늘 폼 정보를 많이 저장해야 하는 문제가 발생했습니다. 오랫동안 고민한 끝에 폼의 데이터를 백그라운드로 제출하는 꽤 좋은 방법을 찾았습니다. 저장용 배열.

실제로 구현하는 것은 매우 간단합니다. 즉, 양식에 제출할 정보의 이름을 지정할 때 특정 기준이 있어야 합니다. 먼저 다음 두 가지 방법의 차이점을 비교해 보겠습니다.

첫 번째 일반적인 방법으로 제출할 각 값에는 이름이 있습니다

<form action="./index.php" method="get">
	<div>
		<input type="text" name="name1" />
		<input type="text" name="num1" />
		<input type="text" name="img1" />
	</div>
	<br>
	<div>
		<input type="text" name="name2" />
		<input type="text" name="num2" />
		<input type="text" name="img2" />
	</div>
	<br>
	<div>
		<input type="text" name="name3" />
		<input type="text" name="num3" />
		<input type="text" name="img3" />
	</div>
	......
  <input type="submit" value="Submit" />
</form>

서비스(index.php)는 두 문장으로 간단합니다

<?php
echo "<pre class="brush:php;toolbar:false">";
print_r($_GET);

렌더링된 웹페이지에 다음 정보를 입력하고 제출을 클릭하세요

브라우저를 통해 보이는 Query String Paramaters는 이렇습니다

서비스 섹션에서 이 메시지를 받게 됩니다

이는 백엔드에서는 처리하기 쉽지 않을 수 있습니다. 동일한 그룹의 세 가지 정보를 배열에 넣을 수 있다면 훨씬 더 쉽게 처리할 수 있습니다.

두 번째, 양식 제출 배열 방법

<form action="./index.php" method="get">
	<div>
		<input type="text" name="infos[1][name]" />
		<input type="text" name="infos[1][num]" />
		<input type="text" name="infos[1][img]" />
	</div>
	<br>
	<div>
		<input type="text" name="infos[2][name]" />
		<input type="text" name="infos[2][num]" />
		<input type="text" name="infos[2][img]" />
	</div>
	<br>
	<div>
		<input type="text" name="infos[3][name]" />
		<input type="text" name="infos[3][num]" />
		<input type="text" name="infos[3][img]" />
	</div>
	......
  <input type="submit" value="Submit" />
</form>

자세히 살펴보면 제출할 데이터의 이름이 변경된 것을 확인할 수 있습니다. 여기서는 제출을 클릭하면 백엔드에 전달된 값이 다음과 같이 표시됩니다. 훨씬 깔끔해졌습니다. 아래 스크린샷을 보세요

브라우저 플러그인을 통해 파싱한 쿼리 문자열은 이렇습니다

서버에서 출력되는 데이터는 다음과 같습니다.

백그라운드에서 이러한 데이터를 받으면 많은 것을 처리하고 저장하기가 훨씬 쉬워집니다. 물론 여기서 주의할 점은 제출할 값의 이름을 지정할 필요가 없습니다. 배열에 따옴표가 있으면 따옴표를 추가한 후 백엔드 키 값에 따옴표가 표시됩니다. 이에 유의해야 합니다. 주목해야 할 또 다른 점은 현재 더 인기 있는 방법은 ajax 제출이라는 것입니다. ajax로 제출할 때 양식에 값을 가져오는 방법은 무엇입니까? 이는 실제로 매우 간단합니다. jquery에서 제공하는 serialize() 메서드는 제출할 모든 콘텐츠를 URL 문자열로 쉽게 연결한 다음 get을 통해 백그라운드로 제출할 수 있습니다.

물론 실제로는 이런 문제가 발생할 수 있습니다. (위의 1, 2, 3과 같은) 제출할 그룹의 수는 불확실하며 제출 방법을 사용하여 프런트엔드에 추가할 수 있습니다. 지금 이 내용은 어떻습니까? 이 문제는 적절한 도구를 사용하면 쉽고 편리하게 해결할 수 있습니다.

<form action="./index.php" method="get">
	<div>
		<input type="text" name="infos[name][]" />
		<input type="text" name="infos[num][]" />
		<input type="text" name="infos[img][]" />
	</div>
	<br>
	<div>
		<input type="text" name="infos[name][]" />
		<input type="text" name="infos[num][]" />
		<input type="text" name="infos[img][]" />
	</div>
	<br>
	<div>
		<input type="text" name="infos[name][]" />
		<input type="text" name="infos[num][]" />
		<input type="text" name="infos[img][]" />
	</div>
	......
  <input type="submit" value="Submit" />
</form>

먼저 브라우저가 전달하는 데이터를 살펴보세요

 

이때 백엔드가 받는 데이터는 이렇습니다

 

이러한 데이터를 이용하면 각 그룹의 정보를 쉽게 분류할 수 있습니다. 이 방법을 사용하기 전에는 이런 문제가 발생할 때마다 머리가 아팠습니다. 이제는 쉽게 해결할 수 있습니다.

본 글의 저작권은 작성자(luluyrt@163.com)에게 있습니다. 글을 재인쇄한 후 작성자와 원문 링크를 알려주셔야 합니다. 기사 페이지의 명백한 위치에 있는 경우, 그렇지 않으면 당사는 법적 책임을 추구할 권리를 보유합니다.

위 내용은 관련 측면을 포함하여 양식 제출을 위한 배열 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.