2013-04-16 2 views
0

라디오 버튼 중 하나가 눌려 졌을 때이 양식을 제출하려하지만 제출 방법을 모르겠습니다.this.form.submit() with PHP isset?

예를 들어 일반적으로 제출 버튼을 사용하면 if (isset ($ _ POST [ 'submit'])) 행을 따라 무언가를 사용하지만 양식 자동 제출의 경우 어떻게해야하는지 잘 모르겠습니다.

<input type="hidden" name="action" value="submit" /> 

그리고 PHP 검사에서 :

+2

'echo'더미를 사용하는 대신'?>'과' MaxArt

+0

어떤 이유에서든 MaxArt의 조언을 따르지 않을 경우'heredocs'를 살펴볼 수도 있습니다. http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc – brezanac

답변

0

같은 숨겨진 입력 필드를 추가

if(isset($_POST["action"]) && $_POST["action"] == "submit") { ... } 
+0

-1, 센티널 값을 추가하는 것보다 훨씬 간단한 방법이 있습니다. –

0

은 양식에 이름을 지정하고 isset($_POST['form_name'])를 확인하거나 라디오의 이름을 확인 isset($_POST['announcefiles'])

또한, 인용 부호를 사용하는 모든 이스케이프가 필요하지는 않지만, 작은 따옴표를 사용할 수있을뿐 아니라 여러 줄 문자열을 사용할 수도 있습니다 (아래 예제 참조).

echo " 
<form method='post' name='form_name' action='settings.php' onchange='this.form.submit()'> 
Announce New Files: <input type='radio' name='announcefiles' value='On' $checkon1> On 
<input type='radio' name='announcefiles' value='Off' $checkoff1> Off<br> 
</form>"; 

<?php 
    // Check if form was submitted 
    if (isset($_POST['form_name']) { 
     // Form submitted 
    } 
?> 

<?php 
    // Check if radio was selected 
    if (isset($_POST['announcefiles']) { 
     // Form submitted 
     echo 'You chose' . $_POST['announcefiles']; 
    } 
?> 
0

요청 방법을 확인해야합니다. 제대로 설정했다면 해당 URL의 POST 요청은 양식 제출을 의미합니다. 당신이 알았 듯이 가치가없는 곳에 제출을 시도 할 수 있습니다.

if ($_SERVER['REQUEST_METHOD'] === 'POST') 

자세한 내용은 $_POST vs. $_SERVER['REQUEST_METHOD'] == 'POST'을 참조하십시오.

0

이 시도 : 당신이 PHP를 분리하고 조금 더 html로하면

당신은 쉽게 시간을 가질 수있다.

<?php 
    if(isset($_POST['announcefiles'])){ 
     // DO SOMETHING 
    } 
?> 

가 알려줘 : (다시 같은 페이지에 게시하는 경우 또는 형태 이상)

<form method="post" action="settings.php" onchange="this.form.submit()"> 
    <fieldset> 
     <legend>Announce New Files:</legend> 
     <label for="on"><input type="radio" id="on" name="announcefiles" value="On" <?php echo $checkon1 ?> /> On</label> 
     <label for="off"><input type="radio" id="off" name="announcefiles" value="Off" <?php echo $checkoff1 ?> /> Off</label> 
    </fieldset> 
</form> 

그런 다음 settings.php에 PHP는 논리에서 당신은 announcefiles의 값을 확인할 수 있습니다 이것이 도움이된다면. 아니면 내가 그 질문을 놓치고있다.

+0

내 온라인 교환이 작동한다고 생각하지 않지만 이론적으로는 작동해야합니다. – user1831430

+0

당신도 자바 스크립트를 분리하고 양식에서'onChange' 속성을 제거하고 자바 스크립트 블록을 추가하여 이벤트 리스너를 입력에 연결할 수 있습니다 : ' 당신의 onchange 이벤트 문제를 해결할 것입니다. –