2012-09-02 3 views
0

를 온 클릭 :어떻게 PHP에서 값을 얻기 위해 내가 다음 코드 줄을 문

echo '<INPUT TYPE="submit" name="delete" value="Delete account" onClick="return confirm('Are you sure you want to delete this account?')">'; 
내가 어떤 사용자가 예 또는 입력 여부를 판단 할 수있을 것입니다 어떻게

?

+0

사용자가 "아니오"를 누르면 폼이 전송되지 않습니다. 그렇지 않으면 폼이 전송됩니다. – j0k

+0

'confirm()'함수가 반환하는 값은 프롬프트에 대한 사용자의 응답을 결정합니다. 'true'는 yes를,'false'는 no/cancel을 나타냅니다. 이미 가지고있는 코드는 @rekire가 지적한 구문 오류 외에 사용자의 작업을 취소해야합니다. – jeremy

답변

2

PHP는 서버 측에서 클라이언트 측에서 아무 것도하지 않습니다. 클릭이 클라이언트에서 발생하므로 PHP가이를 처리 할 수 ​​없습니다.

onclick 이벤트는 JavaScript이며 클라이언트 측에 있습니다. onclick 이벤트에 대한 자세한 내용은 the Mozilla Docs을 참조하십시오.

confirm()boolean을 true 또는 false로 반환합니다. true 사용자가 '예', false을 클릭하면 사용자가 '아니오'을 클릭합니다.

boolean을 PHP로 보내려는 경우 AJAX 요청을 사용해야하지만 양식 제출을 중단하기를 원하기 때문에 원하지 않는다고 생각합니다.

1

당신은 당신이 내부 '을 탈출해야하는 코드에 구문 오류가 있습니다

echo '<INPUT TYPE="submit" name="delete" value="Delete account" 
    onClick="return confirm(\'Are you sure you want to delete this account?\')">'; 

당신은 삭제가 확인 된 경우 감지하는 플래그 JS 활성화와 함께 추가로 작은 스크립트를 추가 할 수 있습니다. 포뮬러가 전송 및 js_active 인 경우 예컨대 :

<input type="hidden" name="js_active" value="false"> 
<script type="text/javascript"> 
document.getElementsByName('js_active')[0]="true"; 
</script> 

그래서 true 당신은 사용자가 삭제를 확인했습니다 추측 할 수 있습니다. false 인 경우 javascript가 비활성화되었을 수 있으며 삭제가 확인되었는지 알 수 없습니다.

+2

예. 그렇지만 질문에 답합니까? 코멘트가 있어야합니다 .. – j0k

+0

나는 방금 그 부분을 놓쳤다 고 생각하지만, 그에 대한 해결책을 추가했습니다. – rekire

0

confirm은 사용자가 클릭 한 내용에 따라 true 또는 false를 반환하므로 사용자가 아니오를 클릭하면 제출을 금지하기 때문에 요청이 서버에 도달 할 때 사용자가 예를 클릭했음을 알게됩니다.

그렇다면 클릭 한 번으로 요청 콘텐츠를 수정하지 않으면 사용자가 클릭 한 내용을 찾을 방법이 없습니다. 클릭의 결과를 폼의 일부 또는 URL 매개 변수를 통해 서버에 매개 변수로 보내야합니다. 그러나 사용자가 브라우저에서 자바 스크립트를 활성화했을 때만 전송됩니다.

관련 문제