폼메일 질문드립니다.
본문
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<count($email); $i++)
mailer($from_name, $from_email, trim($email[$i]), "예약상담", $sub);
echo <<<HEREDOC
<SCRIPT type="text/javascript">
alert("예약상담이 접수 되었습니다.");
</SCRIPT>
HEREDOC;
}
$token = get_token();
<input type="checkbox" name="wr_2" value="jsp" onclick="javascript:checkBoxClick()">JSP<br>
<input type="checkbox" name="wr_2" value="js2p" onclick="javascript:checkBoxClick()">JSP2<br>
<input type="checkbox" name="wr_2" value="jsp3" onclick="javascript:checkBoxClick()">JSP3<br>
<input type="checkbox" name="wr_2" value="jsp4" onclick="javascript:checkBoxClick()">JSP4<br>
<input type="checkbox" name="wr_2" value="jsp5" onclick="javascript:checkBoxClick()">JSP5<br>
위 소스는 상담신청 폼인데요.
신청하면 메일로 접수가 됩니다.
그런데 wr_2 부분을 다중선택이 되게 해야하는데요.
현재는 여러개를 체크해도 마지막 체크한 내용만 메일로 옵니다.
wr_2에 체크한 값이 모두 메일로 오게 하려면 어떻게 해야하는지 회원님들 도움을 부탁드립니다.
꾸벅~
답변 2
php에서는 name이 같을 경우 제일 마지막 것만 값이 넘어갑니다(asp는 다름).
이름을 배열로 해서 넘기거나 아니면 아예 이름을 다르게 해서 넘기거나 둘 중 하나 선택하셔야 합니다.
name="wr_2[]" 이렇게 전부 바꾸셔서 실제 받는 페이지에서
$wr2 = implode(", ", $_POST['wr_2']);
이렇게 해서 받으시는 게 제일 편합니다.
<input type="checkbox" name="wr_2[]" value="jsp" onclick="javascript:checkBoxClick()">JSP<br>
<input type="checkbox" name="wr_2[]" value="js2p" onclick="javascript:checkBoxClick()">JSP2<br>
<input type="checkbox" name="wr_2[]" value="jsp3" onclick="javascript:checkBoxClick()">JSP3<br>
<input type="checkbox" name="wr_2[]" value="jsp4" onclick="javascript:checkBoxClick()">JSP4<br>
<input type="checkbox" name="wr_2[]" value="jsp5" onclick="javascript:checkBoxClick()">JSP5<br>
$from_name = "예약상담";
$from_email = mail@mail;
$email = explode(",", $mail);
check_token();
for ($i=0; $i<count($wr_2); $i++)
{
// 실제 값을 넘김
$var = $_POST['wr_2'][$i];
$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);
}
echo <<<HEREDOC
<SCRIPT type="text/javascript">
alert("예약상담이 접수 되었습니다.");
</SCRIPT>
HEREDOC;
요렇게 하면 잘될껍니다.
약간의 설명을 하자면 php에선 wr_2값이 []사용을 하게되면 배열로 넘어갑니다.
참고로 asp에선 구분자를 포함해서 넘어갑니다. php에선 배열로 넘어가기때문에..
요런식으로 해서 구분하여 for 문을 사용하셔서 돌리시면 됩니다.
이부분은 그누보드에서도 보시면 비슷한 예가 잘 나와있습니다.
선택한 wr_2값이 배열로 넘아가기땜문에 선택한 크기 만큼 for문을 사용하여 배열을 변수로 담아서
원하는 곳에 assign을 하시면 됩니다.
!-->!-->