테스트 사이트 - 개발 중인 베타 버전입니다

폼메일 질문드립니다. 채택완료

웹프로듀서 8년 전 조회 2,640

if ($mail) {     check_token();

    $from_name  = "예약상담";     $from_email = "mail@mail";     $email = explode(",", $mail);  $sub = "이름 : $name \n 나이 : $wr_1 \n 성별 : $wr_3 \n 연락처 : $phone-$phone2-$phone3 \n 직업 : $wr_4 \n 주거지역 : $city \n 상담종류 :$wr_2 \n 상담내용 : $wr_content";     for ($i=0; $i

    echo <<         alert("예약상담이 접수 되었습니다.");     HEREDOC; }

$token = get_token();

 

JSP JSP2 JSP3 JSP4 JSP5

 

위 소스는 상담신청 폼인데요.

신청하면 메일로 접수가 됩니다.

그런데 wr_2 부분을 다중선택이 되게 해야하는데요.

현재는 여러개를 체크해도 마지막 체크한 내용만 메일로 옵니다.

wr_2에 체크한 값이 모두 메일로 오게 하려면 어떻게 해야하는지 회원님들 도움을 부탁드립니다.

꾸벅~

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

php에서는 name이 같을 경우 제일 마지막 것만 값이 넘어갑니다(asp는 다름).

이름을 배열로 해서 넘기거나 아니면 아예 이름을 다르게 해서 넘기거나 둘 중 하나 선택하셔야 합니다.

 

name="wr_2[]" 이렇게 전부 바꾸셔서 실제 받는 페이지에서

$wr2 = implode(", ", $_POST['wr_2']);

이렇게 해서 받으시는 게 제일 편합니다. 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

웹프로듀서
8년 전
또 답변주셨네요. 감사드립니다.
알려주신대로 처리하고 메일로 받아보면
상담종류 : Array 로 나옵니다.
왕계란
8년 전
어떻게 찍으셨는지 모르겠지만
$wr2 = implode(", ", $_POST['wr_2']);
echo $wr2;
이렇게 하면 체크한 값들이 ,(콤마)로 연결되어서 문자열이 됩니다.
implode() 함수 자체가 배열을 문자열로 바꾸는 역할을 합니다.
Array라고 나온 건 implode 함수를 안 쓰셨거나 $wr2 변수를 안 찍고 $wr_2를 찍었기 때문이 아닐까 싶네요.
웹프로듀서
8년 전
아~제가 잘못 입력했었네요.
$wr2로 하니까 이제 됩니다.!!
너무 감사합니다.
며칠 고생하던건라 너무 감사합니다.
편한밤 되세요.^^

댓글을 작성하려면 로그인이 필요합니다.

복스리
8년 전

</p><p><input type="checkbox" name="wr_2[]" value="jsp" onclick="javascript:checkBoxClick()">JSP

<input type="checkbox" name="wr_2[]" value="js2p" onclick="javascript:checkBoxClick()">JSP2

<input type="checkbox" name="wr_2[]" value="jsp3" onclick="javascript:checkBoxClick()">JSP3

<input type="checkbox" name="wr_2[]" value="jsp4" onclick="javascript:checkBoxClick()">JSP4

<input type="checkbox" name="wr_2[]" value="jsp5" onclick="javascript:checkBoxClick()">JSP5
</p><p>

 

</p><p> </p><p>$from_name  = "예약상담";
$from_email = <a href="mailto:mail@mail">mail@mail</a>;</p><p>$email = explode(",", $mail);</p><p>check_token();</p><p> </p><p>for ($i=0; $i<count($wr_2); $i++)
{</p><p>    // 실제 값을 넘김
    $var = $_POST['wr_2'][$i];</p><p>    $sub = "이름 : $name \n 나이 : $wr_1 \n 성별 : $wr_3 \n 연락처 : $phone-$phone2-$phone3 \n 직업 : $wr_4 \n 주거지역 : $city \n 상담종류 :$var \n 상담내용 : $wr_content";
  mailer($from_name, $from_email, trim($email[$i]), "예약상담", $sub);</p><p>}</p><p>    echo <<<HEREDOC
    <SCRIPT type="text/javascript">
        alert("예약상담이 접수 되었습니다.");
    </SCRIPT>
HEREDOC; </p><p> </p><p>

 

 

요렇게 하면 잘될껍니다.

약간의 설명을 하자면 php에선 wr_2값이 []사용을 하게되면 배열로 넘어갑니다.

참고로 asp에선 구분자를 포함해서 넘어갑니다. php에선 배열로 넘어가기때문에..

요런식으로 해서 구분하여 for 문을 사용하셔서 돌리시면 됩니다.

이부분은 그누보드에서도 보시면 비슷한 예가 잘 나와있습니다.

 

선택한 wr_2값이 배열로 넘아가기땜문에 선택한 크기 만큼 for문을 사용하여 배열을 변수로 담아서

원하는 곳에 assign을 하시면 됩니다.

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

웹프로듀서
8년 전
복스리님.
오랜만에 뵙습니다.^^
위에 분 답변으로 해결했습니다.
귀한 시간 내주셔서 감사드립니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인