PHP는 동일한 이름을 가진 여러 개의 체크박스 정보를 ASP처럼 자동으로 배열로 변환하지 않으므로 사용하기 불편합니다. 하지만 여전히 자바스크립트를 사용하여 전처리를 수행하는 솔루션이 있습니다. 동일한 이름을 가진 여러 개의 체크박스가 여전히 JavaScript의 배열 형식으로 존재하므로 양식을 제출하기 전에 JavaScript를 사용하여 체크박스의 정보를 문자 배열로 결합하고 이를 양식의 숨겨진 요소에 할당한 다음 양식을 제출할 수 있습니다. PHP를 사용하면 분해 기능이 이 배열을 구문 분석하여 확인란 정보를 전송할 수 있습니다. 아래는 예시입니다.
다음과 같은 형식이 있다고 가정합니다:
<form name="form1" id="form1" method="post" action="myphp.php" onSubmit="return Checker()">
<input type="checkbox" name="item" value="1">1<br>
<input type="checkbox" name="item" value="2">2<br>
<input type="checkbox" name="item" value="3">3<br>
<input type="checkbox" name="item" value="4">4<br>
<입력 유형="숨김" 이름="항목" 값="">
<입력 유형="제출" 값="제출">
</form>
이 폼에는 이름이 모두 항목인 4개의 체크박스가 있습니다. 사용자가 제출 버튼을 클릭하면 Checker 함수가 호출되고, Checker가 true를 반환하면 해당 폼이 제출됩니다. 양식이 제출되지 않습니다. 여기서 Checker 함수는 우리가 작성하려는 전처리 함수입니다. HTML의 헤더 섹션에 다음 자바스크립트를 추가합니다:
<script 언어="javascript">
<!--
함수 검사기()
{
form1.items.value = "";
if ( !form1.item.length ) // 체크박스가 하나만 있습니다. form1.item.length = undefine
{
if (form1.items.checked)
form1.items.value = form1.item.value;
}
또 다른
{
for ( i = 0 ; i < form1.item.length ; i++ )
{
if (form1.item(i).checked) // 체크박스에 체크박스가 있습니다 {
form1.items.value = form1.item(i).value;
for ( j = i + 1 ; j < form1.item.length ; j++ )
{
if (form1.item(j).checked)
{
form1.items.value += " "; //구분자로 공백을 사용합니다. form1.items.value += form1.item(j).value;
}
}
부서지다;
}
}
}
사실을 반환;
}
-->
</script>
결합
할 수 있습니다.myphp.php에서
$items =explore(" ", $HTTP_POST_VARS["items"]);
이러한 옵션은 배열로 분리될 수 있습니다. 옵션 값에는 구분 기호(여기서는 공백)를 포함할 수 없습니다.