2012-12-05 3 views
0

간단한 질문, 내가 어떤 라디오 버튼을 선택하지 않은 경우, 내가 가진 오류 메시지 정의되지 않은 인덱스 : 성 '성'입력 값이 제출되지 않습니다PHP 라디오 버튼 - 정의되지 않은 인덱스

<?PHP 
if(isset($_POST['register'])){ 

    $gender=$_POST['gender']; 
    echo $gender; 
    } 
?> 

<html> 
    <form action="testing.php" method="POST"> 
     <input type="radio" name="gender" value="male" />Male 
     <input type="radio" name="gender" value="female" />Female 
    <input type="submit" name="register" value="Register" /> 
    </form> 
</html> 

답변

3
<?PHP 
if(isset($_POST['register'])){ 


    if(!empty($_POST['gender'])) { 

     $gender=$_POST['gender']; 
     echo $gender; 

     } 
    } 
?> 

<html> 
    <form action="radio.php" method="POST"> 
     <input type="radio" name="gender" value="male" />Male 
     <input type="radio" name="gender" value="female" />Female 
    <input type="submit" name="register" value="Register" /> 
    </form> 
</html> 
0

선택된 라디오 버튼이없는 경우. 이것은 체크 박스를 체크하지 않는 것과 같습니다. 당신은 존재하고 값이 0 또는 빈 문자열 (또는하지 않을 수도 인 경우 확인하지 않는 검사 포함 isset($_POST['gender']) 이러한 생각 array_key_exists('gender', $_POST)

if(!empty($_POST['gender'])) { 
    ... 
} 

다른 방법을 사용하여 유효한 값이 있는지 확인해야 원하는 것)

1

선택하지 않은 라디오 버튼과 체크 박스는 양식에 게시되지 않으므로 $_POST에 표시되지 않습니다.

1

물론 라디오 버튼을 선택하지 않으면 오류가 발생합니다. 하나를 선택하지 않으면 값이 전기되지 않습니다. 1) 인덱스가 isset()에 있는지 확인하거나 2) 페이지로드시 라디오 버튼을 선택하여 값이 항상 전송되도록 할 수 있습니다.

0

문제는 $_POST['gender']입니다. 당신이 아무것도 선택하지 않았으므로, 성별은 정의되지 않았습니다.

당신은 array_key_exists('gender', $_POST)

3

당신이 $ @ 사용하여 정의 된 인덱스를 확인할 수 있습니다 _ POST [ '성별'] 오류

0

를 제기하지 않는 문제는 쉽게 이런 식으로 해결 될 수있다.

if(isset($_POST['register'])){ 
    if(isset($_POST['gender'])) { 
     $gender = $_POST['gender']; 
    }else{ 
     $gender = ""; 
    } 
} 

PHP로 유효성을 검사해야하는 경우 $ gender = "";

<html> 
<form action="radio.php" method="POST"> 
    <input type="radio" name="gender" value="male" />Male 
    <input type="radio" name="gender" value="female" />Female 
<input type="submit" name="register" value="Register" /> 
</form>