2013-05-14 3 views
1

Я бы хотел, чтобы моя форма php отображала, какие радиокассы были проверены. Другими словами, когда кто-то связывается со мной по электронной почте через мой сайт, я бы хотел, чтобы он показывал, какое радио-бокс они отметили. Я пробовал все, но не могу заставить его работать!PHP Checkbox email not working

HTML код SO FAR -

<table width="308" border="0"> 
     <label> 
     <input type="radio" name="servicetype[]" value="checkbox" id="Technical Support" /> 
     Technical Support</label> 

     <label> 
     <input type="radio" name="servicetype[]" value="checkbox" id="Information Services" /> 
     Information Services</label> 
    <tr> 
    <td align="left"> 
    <input name="Submit" type="submit" id="Submit" class="contact-class2" value="Send"/> 
    </td> 
    </tr> 
</table> 
    </form> 

PHP ПОКА

<?php 
$field_name = $_POST['cf_name']; 
$field_email = $_POST['cf_email']; 
$field_message = $_POST['cf_message']; 

$mail_to = 'www.example.com'; 
$subject = 'hello'; 

$servicetype = join(", ", $_REQUEST["servicetype"]); 
if (isset($_POST['servicetype'])) { 
    foreach ($_POST['servicetype'] as $key => $val) { 
     // do what you need 
    } 
} 


$body_message = ''.$field_message."\n"."\n"; 
$body_message .= 'From: '.$field_name; 

$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers ); 



if ($mail_status) { ?> 
    <script language="javascript" type="text/javascript"> 
     window.location = 'Contact form.html'; 
    </script> 
<?php 
} 
else { ?> 
    <script language="javascript" type="text/javascript"> 
     window.location = 'Contact form.html'; 
    </script> 
<?php 
} 
?> 
+0

$ _POST получит значение атрибута из кнопок радио, а не идентификатор. Кроме того, если они переключатели, вам нужно отправить массив? Потому что вы можете выбрать только один. – andrewsi

+0

В тот момент, когда я отправляю свою форму, он отображает только имена полей и заголовки и т. Д., Но не отображает ни один из этих флажков. Это поле полностью пустое. Я супер новичок на PHP, поэтому мне нужна помощь в отчаянии :( – user2382274

ответ

2

Вы построили свои флажок входы неправильно. Атрибут value должен быть отображаемым «именем» этого флажка, например.

<input type="checkbox" name="servicetype[]" value="Technical Support" id="Technical Support" /> 
       ^^^^^^^^        ^^^^^^^^^^^^^^^^^ 

Это что value, который получает представленный вместе с формой. В настоящее время вы просто отправляете слово «checkbox» и не имеете возможности узнать, какие флажки WHICH были выбраны.

Ваш электронный адрес будет просто:

$body_message = "blah blah blah. Requested services: " . implode(',' $_POST['servicetype']); 
+0

Что именно означает «взломать»? Как вы думаете, какой лучший способ показать, какой флажок был выбран в письме? Я не думаю, что PHP-кодирование я использовал, чтобы отображать, какой флажок был выбран правильно. – user2382274

+0

'join()' является псевдонимом для 'implode()'. –