2013-06-25 2 views
1

나는 wordpress 용 폼을 만들려고합니다. 과거에는 플러그인을 사용했지만 일부 특정 스타일링에 대해서는 최대한의 제어가 필요합니다. 나는 아직 PHP에 익숙하지 않아서 스크립트에 체크 박스를 추가하려고 애 쓰고있다. 나는 내 시도를 제거하고 html로 체크 상자를 남겼지 만 PHP에서는 그렇지 않다. 누군가가 나에게 최선의 방법을 조언 할 수 있는가? 전송 된 이메일에 선택된 확인란을 표시하려면 어떻게해야합니까? 그 밖의 모든 것은 그 순간에 작동합니다.PHP POST 이메일 양식에 체크 박스 추가하기

html로 :

<form method="post" action="<?php bloginfo('template_directory'); ?>/contact.php"> 

<h3>Your Details</h3> 

<div class="formrow"> 
    <input type="text" name="Name" maxlength="99" id="fullname" placeholder="Name" /> 
    <input type="email" name="Email" maxlength="99"placeholder="Email Address" /> 
    <input type="tel" name="Phone" maxlength="25" placeholder="Phone Number" /> 
</div> 

<h3>Project Type</h3> 

<div class="formrow"> 
    <fieldset> 
     <input type="checkbox" name="project1" value="Web"> 
     <label for="type1">Web</label> 
     <input type="checkbox" name="project2" value="Digital"> 
     <label for="type2">Digital</label> 
     <input type="checkbox" name="project3" value="Consultancy"> 
     <label for="type3">Consultancy</label> 
    </fieldset> 
</div> 

<table align=center> 
<tr><td colspan=2><strong>Contact us using this form:</strong></td></tr> 
<tr><td>Department:</td><td><select name="sendto"> <option value="[email protected]">General</option> <option value="[email protected]">Support</option> <option value="[email protected]">Sales</option> </select></td></tr> 


<tr><td>Company:</td><td><input size=25 name="Company"></td></tr> 

<tr><td>Subscribe to<br> mailing list:</td><td><input type="radio" name="list" value="No"> No Thanks<br> <input type="radio" name="list" value="Yes" checked> Yes, keep me informed<br></td></tr> 
<tr><td colspan=2>Message:</td></tr> 
<tr><td colspan=2 align=center><textarea name="Message" rows=5 cols=35></textarea></td></tr> 
<tr><td colspan=2 align=center><input type=submit name="send" value="Submit"></td></tr> 
<tr><td colspan=2 align=center><small>A <font color=red>*</font> indicates a field is required</small></td></tr> 
</table> 

</form> 

는 PHP :

<?php 
$to = $_REQUEST['sendto'] ; 
$from = $_REQUEST['Email'] ; 
$name = $_REQUEST['Name'] ; 
$headers = "From: $from"; 
$subject = "Web Contact Data"; 

$fields = array(); 
$fields{"Name"} = "Name"; 
$fields{"Company"} = "Company"; 
$fields{"Email"} = "Email"; 
$fields{"Phone"} = "Phone"; 
$fields{"list"} = "Mailing List"; 
$fields{"Message"} = "Message"; 

$body = "We have received the following information:\n\n"; foreach($fields as $a => $b){ $body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); } 

$headers2 = "From: [email protected]"; 
$subject2 = "Thank you for contacting us"; 
$autoreply = "Thank you for contacting us. Somebody will get back to you as soon as possible, usualy within 48 hours. If you have any more questions, please consult our website at www.oursite.com"; 

if($from == '') {print "You have not entered an email, please go back and try again";} 
else { 
if($name == '') {print "You have not entered a name, please go back and try again";} 
else { 
$send = mail($to, $subject, $body, $headers); 
$send2 = mail($from, $subject2, $autoreply, $headers2); 
if($send) 
{print "Success";} 
else 
{print "We encountered an error sending your mail, please notify [email protected]"; } 
} 
} 
?> 

감사합니다! MC

+0

체크 박스'해야 name' 'projects []'와'$ _POST [ 'projects'];와 같은 것입니다. – Ronnie

답변

8

체크 박스 배열이 가장 적합합니다. 체크 박스 이름에 []을 사용하면 PHP가 자동으로이를 원시 배열로 구문 분석합니다. PHP는 측면에서

<input type="checkbox" name="projects[]" value="Web"> 
    <label for="type1">Web</label> 
    <input type="checkbox" name="projects[]" value="Digital"> 
    <label for="type2">Digital</label> 
    <input type="checkbox" name="projects[]" value="Consultancy"> 
    <label for="type3">Consultancy</label> 

:

$selectedProjects = 'None'; 
if(isset($_POST['projects']) && is_array($_POST['projects']) && count($_POST['projects']) > 0){ 
    $selectedProjects = implode(', ', $_POST['projects']); 
} 

$body .= 'Selected Projects: ' . $selectedProjects; 

출력 (모두 체크하는 경우)

에게 이

선정 된 프로젝트 : 웹, 디지털, 컨설팅

+0

감사합니다. 이것은 완벽합니다. PHP 개념이 방금 내 뇌에서 클릭되었습니다. – Mike

+0

위대한 솔루션에 감사드립니다! 완벽하게 작동합니다! –