2017-02-06 3 views
0

RSVP 용 PHP 양식을 만들고 여러 개의 $ _POST를 1 개의 isset 변수로 선언하려고합니다. 그러나 코드에서 오류가 계속 발생합니다. 이것이 내가 시도하는 것입니다. 수행PHP 다중 Isset 선언

$attendance = isset($_POST['template-contactform-event']) ? $_POST['template-contactform-event'] : ''; 

    $guestname1 = isset($_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r']) ? $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] : ''; 

그래서 내 오류가 나는 때문에는 isset에 이어 두 번째로 혼수 상태의 자신을 생각하는 두 번째 선언 라인 $의 guestname1에 발생하는,하지만 난이 선언 얼마나 잘 모르겠어요? 첫 번째 줄 ($ 출석)은 내가 달성하고자하는 것이지만 하나의 변수에 두 개의 $ _POST가 있습니다.

+0

오류 메시지가 무엇입니까? 또한 디버깅하는 동안 삼항을 사용하지 마십시오, 당신은 항상 이후에 세 가지를 쓸 수 있습니다 – fpietka

답변

2

isset()은 여러 매개 변수를 사용할 수 있지만 인라인 iif()는 사용할 수 없습니다.

대신이 두 매개 변수를 연결해보십시오.

<?php 

$attendance = isset($_POST['template-contactform-event']) ? $_POST['template-contactform-event'] : ''; 

$guestname1 = isset($_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r']) ? 
       $_POST['template-contactform-guestname1'].' '.$_POST['template-contactform-guestname1r'] : ''; 
+0

당신의 도움을 주셔서 감사합니다,이 나를 위해 일했습니다! 예제로 답변을 제출하면 작동하는 것으로 나타났습니다. – BoneStarr

2

첫 번째 문장이 옳다. 두 번째 쉼표로 오류가 있습니다.

$val = my_test?result_if_true:result_if_false;

은 부울을 반환하기 때문에 당신은 isset($_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'])을 수행 할 수 있습니다 당신이 살펴 경우

는 방식 삼항는 빌드 있어야한다.

쓰기 : $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r']에는 두 번째 인수가 있습니다. 삼자가이 쉼표를 기대하지 않기 때문입니다.

는 당신은 내가 당신은 하나 개의 변수에이 개 값을 할당이 문서 https://davidwalsh.name/php-shorthand-if-else-ternary-operators

+0

감사합니다 +! – BoneStarr

1

을 발견했습니다 더 많은 정보를 원하는 경우, 작동하지 않습니다, 당신은 배열을 사용해야합니다.

또한 isset()은 사용자가 양식에 값을 입력했는지 확인하는 방법이 아닙니다. 사용자가 공백 양식을 제출하면 isset($_POST['smth'])은 색인이 초국색 $_POST에 있고 그 값이 값이 빈 문자열로 설정됩니다. 대신 empty()을 사용하고 배열을 사용하여 2 개의 값을 저장하십시오.

+0

+1을 가져 주셔서 감사합니다. – BoneStarr