2011-08-16 2 views
0

최근에 PHP 이메일 양식을 작성하는 중입니다. 확인란 값을 정확하게 보낼 수 없습니다. 이 양식은 내가 다른 곳에서 찾은 것이며 수정 된 것입니다. HTML은 매우 간단합니다.POST를 사용하여 메시지에 체크 박스 값을 어떻게 배치합니까?

<label for="needs">I am looking for...</label> 
<input name="needs[]" id="needs" type="checkbox" value="product list">A Product List<br> 
<input name="needs[]" id="needs" type="checkbox" value="educational support">Educational Support<br> 
<input name="needs[]" id="needs" type="checkbox" value="catering options">Catering Options<br> 
<input name="needs[]" id="needs" type="checkbox" value="party ideas">Party Ideas<br> 
<input name="needs[]" id="needs" type="checkbox" value="healthy alternatives">Healthy Alternatives<br> 
<input name="needs[]" id="needs" type="checkbox" value="other">Other (please specify)<br> 

현재로서는 PHP를 통해 보내면 하나의 선택된 값을 반환하거나 여러 개를 선택하면 "배열"이라고 표시됩니다. 내가 원하는 것은 선택된 값을 나열하기 위해 나에게 보낸 메일 메시지에 대한 것입니다. 나는 다른 곳에서 수색했지만 아직 내 상황을 발견하지 못했다. PHP는 다음과 같습니다 :

<?php 
$msg= 
'Name:  '.$_POST['name'].'<br /> 
Category: '.$_POST['category'].'<br /> 
Email:  '.$_POST['email'].'<br /> 
Phone:  '.$_POST['telephone'].'<br /> 
Looking for: '.$_POST['needs'].'<br /> 
IP:  '.$_SERVER['REMOTE_ADDR'].'<br /><br /> 

Message:<br /><br /> 

'.nl2br($_POST['message']).' 

'; 
?> 

나머지 코드는 설정 및 메시지 전송입니다. 내가 원하는 것을 수행하는 다른 방법이 있지만 여기에 포함 된 $ msg를 계속 사용하고 싶습니다.

도움을 주시면 감사하겠습니다.

수정 된 코드 : 정말 배열이기 때문에

$msg= 
'Name:  '.$_POST['name'].'<br /> 
Category: '.$_POST['category'].'<br /> 
Email:  '.$_POST['email'].'<br /> 
Phone:  '.$_POST['telephone'].'<br /> 
Looking for: '.(is_array($_POST['needs'])?implode("\n", $_POST['needs']):$_POST['needs']).'<br /> 
IP:  '.$_SERVER['REMOTE_ADDR'].'<br /><br /> 

Message:<br /><br /> 

'.nl2br($_POST['message']).' 

'; 
+0

HTML을 향상 시키려면 입력 태그에서 id = "needs"속성도 제거해야합니다. id 값은 고유해야합니다 –

+0

이름이 –

답변

1

당신은 배열로 $ _POST [ '필요']와 함께 작동합니다. 방금 확인 확인란의 목록을 얻으려면 당신은 문자열 배열에 가입 할 수 있습니다 :

$checked_options = implode("\n", $_POST['needs']); 

당신은 어떤 옵션이 선택되었는지 여부를 확인할 수 있습니다 등등

if (in_array("educational support", $_POST['needs'])) echo ("educational support is checked"); 

과 .. . 귀하의 경우

i는 다음과 같습니다

<?php 
$msg= 
'Name:  '.$_POST['name'].'<br /> 
Category: '.$_POST['category'].'<br /> 
Email:  '.$_POST['email'].'<br /> 
Phone:  '.$_POST['telephone'].'<br /> 
Looking for: '.(is_array($_POST['needs'])?implode("\n", $_POST['needs']):$_POST['needs']).'<br /> 
IP:  '.$_SERVER['REMOTE_ADDR'].'<br /><br /> 

Message:<br /><br /> 
'.nl2br($_POST['message']).' 

'; 
?> 

'.nl2br($_POST['message']).' 

을 '; ?>

+0

인 위 코드에 배치할까요? implode 함수를보고 있었지만 아직 작동하지 못했습니다. – foochow

+0

예, 그렇습니다. 내 대답을 업데이트했습니다 – heximal

+0

흠, 나는 그것을 시도하고 다음과 반환 : 찾고 : 배열 – foochow

관련 문제