PHP 페이지는 page.php라고 불립니다. 이 페이지에는 form1과 form2라는 2 개의 양식이 있습니다. 양식의 제출 버튼 중 하나를 누르면 HTML 헤더의 어떤 양식이 제출되었는지 확인합니다.HTML 양식이 POST 헤더에서 어떻게 식별됩니까?
2
A
답변
10
나는 신원을 게시하지 않는다고 생각합니다. form
태그의 action
속성에 대해
<form id="form1">
<input type="hidden" name="formName" value="form1"/>
<input type="submit" value="submit" />
</form>
<form id="form2">
<input type="hidden" name="formName" value="form2"/>
<input type="submit" value="submit" />
</form>
2
무엇 : 어떤 형태로 게시 알고 코드를 가지고하는 가장 쉬운 방법은 같은 형태를 식별 각 양식에 숨겨진 필드를 넣어하는 것입니다?
다른 form
인스턴스에 다른 action
속성 (각각 다른 URI 값이 있음)을 지정할 수 있다고 추측했을 것입니다.
또한 제출 버튼에 name
속성을 추가하는 것 : +1하면 "성공한"(즉, 클릭 된) 제출 버튼의 이름이 양식의 이름 문자열에 추가됩니다 서버로 돌아갑니다.
3
:
<form id="form1">
<input type="submit" value="submit" name="form1" />
</form>
<form id="form2">
<input type="submit" value="submit" name="form2" />
</form>
그리고 양식 처리 스크립트 :
if(isset($_POST['form1']){
// do stuff
}
이 아약스를 통해 양식을 제출하지 않을 경우 내가 사용하는 것입니다.
1
"rpflo"가 사용하는 방식은 양식을 식별하지 않습니다. 여기서 $_POST['form1']
은 id = "form1"인 양식이 아닌 name = "form1"인 입력에 해당합니다.
한 페이지에 두 개의 양식을 식별하는 두 가지 합리적인 방법이 있습니다. 은 먼저 action="mypage.php?form_id=1"
과 같이 GET 변수를 추가하여 '조치'속성을 통해 전달됩니다. 그리고 두 번째 방법 인 imho는 더 실용적입니다. 모든 입력의 이름을 배열과 같이 지정하는 것입니다. 예를 들어 :
<form>
<input name="form1[first_name]" />
<input name="form1[last_name]" />
</form>
<form>
<input name="form2[first_name]" />
<input name="form2[last_name]" />
</form>
는 다음 $ _POST이 [ 'Form1을'] [ 'FIRST_NAME'] 등등 ..
또한 버튼을 제출하고 형태를 식별하기 위해 그것을 사용하는 이름을 지정할 수 있습니다. – che