2010-04-21 4 views

답변

110

위한에서 getElementById를 사용

<input type="submit" name="btnSubmit" value="Save Changes" /> 
<input type="submit" name="btnDelete" value="Delete" /> 

과 같을 것이다 사용하는 PHP 코드 :

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    //something posted 

    if (isset($_POST['btnDelete'])) { 
     // btnDelete 
    } else { 
     //assume btnSubmit 
    } 
} 

당신은 항상해야 은 HTML 소스 코드의 형식으로 표시 할 첫 번째 제출 버튼을 가정하거나 기본값으로 설정합니다.

  1. 사용자는 그대로 마우스 또는 포인팅 장치
  2. 와 함께 제출 버튼을 클릭하거나 포커스가에있다 : 때 실제로, 다양한 브라우저 안정적 포스트 데이터로 전송 버튼의 이름/값을 전송 제출 버튼 (Tab 키를 누름)을 입력 한 다음 Enter 키를 누릅니다. 양식을 제출

다른 방법이 존재하며, 일부 브라우저/버전은 이러한 상황의 일부 버튼을 제출의 이름/값을 보내지 를 결정한다. 예를 들어 많은 사용자 커서/포커스가 텍스트 필드에있을 때 Enter 키를 눌러 양식을 제출하십시오. 양식은 자바 스크립트를 통해 제출할 수있을뿐 아니라 더 모호한 방법으로 제출할 수도 있습니다.

이 세부 사항에주의하는 것이 중요합니다. 그렇지 않으면 양식을 제출할 때 실제로 사용자를 좌절시킬 수 있지만 예상치 못한 결과로 양식 제출을 감지하지 못해 데이터가 손실됩니다. 제출 버튼의 이름/값이 게시물 데이터와 함께 전송되지 않을 수도 있다는 사실.

또한 위의 조언은 이 항상 기본 제출 버튼으로 가정해야하므로 하나의 제출 버튼이있는 양식에도 사용해야합니다.

나는 인터넷이 수많은 폼 핸들러 자습서로 가득 차 있다는 것을 알고 있으며, 거의 모든 것은 제출 버튼의 이름과 값을 확인하는 것 이상을 수행합니다. 그러나, 그들은 단지 명백한 잘못입니다!

+1

기본 버튼을 추측하는 것에 대한 추가 정보를 보내 주셔서 감사합니다 ... 간과하기 쉽습니다. – kad81

+0

왜 다른 대신에 else를 사용합니까? – Buts

+0

@Gorg else if? 당신은 무엇을 시험 할 것이며, 왜 그럴 것입니까? – goat

8

: PHP에서

<input type="submit" id="btnSubmit" name="btnSubmit" value="Save Changes" /> 
<input type="submit" id="btnDelete" name="btnDelete" value="Delete" /> 

:

if (isset($_POST["btnSubmit"])){ 
    // "Save Changes" clicked 
} else if (isset($_POST["btnDelete"])){ 
    // "Delete" clicked 
} 
+3

죄송합니다. 입력 키를 사용하여 제출할 때 오작동하는 양식 처리기는 내 애완 동물입니다. – goat

+2

@chris - 괜찮습니다. 당신은 완벽하게 유효한 포인트를 만듭니다. 당신의 대답을 Upvoted. – MiffTheFox

-2

당신이 PHP 나 자바 스크립트 묻는 여기 내 두 개의 버튼에 대한 마크 업입니다.

php에있는 경우 이름을 지정하고 post 또는 get 메소드를 사용하면 이후에 isset 옵션을 사용하거나 특정 버튼 이름을 해당 값에 검사합니다. 이 JS에있는 경우

같은 HTML 형식으로 그

관련 문제