联系表格与复选框几乎工作

时间:2013-07-17 09:44:53

标签: php checkbox

我无法在联系表单中显示正确的答案/值。收到的电子邮件只会显示C作为答案,而不是选择的选项。

<tr>
      <td><label for="gategory">Lemosine</label></td>
      <td><input type="checkbox" name="carchoice[]" value="A" /><td>
  </tr>
  <tr>
      <td><label for="gategory">Mini</label></td>
      <td><input type="checkbox" name="carchoice[]" value="B" /></td>
  </tr>
  <tr>
      <td><label for="gategory">Van</label></td>
      <td><input type="checkbox" name="carchoice[]" value="C" /></td>
  </tr>
  <tr>    
      <td><label for="gategory">Off-Road</label></td>
      <td><input type="checkbox" name="carchoice[]" value="D" /></td>
  </tr>
  <tr>
      <td><label for="gategory">Station-car</label></td>
      <td><input type="checkbox" name="carchoice[]" value="E" /></td>
  </tr>

和PHP代码

$check_box_values = "Check box value: ";
  if(isset($_POST['carchoice'])){
    foreach($_POST['carchoice'] as $value){
    $check_box_values .= $value;
    $check_box_values .= ', ';
  }
}


$msg=
  'Name:    '.$_POST['name'].'<br />
  Email:    '.$_POST['email'].'<br />
  IP:   '.$_SERVER['REMOTE_ADDR'].'<br /><br />

  IP:   '.$check_box_values['carchoice[]'].'<br /><br />

  Message:<br /><br />

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

';

这是我在电子邮件中收到的内容

Name:   awdawd aw
Email:  adasda@live.dk
IP:         195.249.185.254

IP:         C

Message:

awdawdawdd awd awdawd awd awd

不明白我错在哪里?

2 个答案:

答案 0 :(得分:0)

复选框的值设置为“C”,因此将获取C,因为每次尝试都有标签,并在复选框值中给出标签名称。

答案 1 :(得分:0)

正如评论中所提到的,您正试图访问$check_box_values的属性,就像它是一个数组一样,实际上它是一个字符串。因此,PHP将返回方括号之间指定位置的字符,因为这也是一个字符串,它会尝试将其强制转换为整数,结果为0(所以它基本上返回{{1中的位置0处的字符)这是$check_box_values)。

Read: String access and modification by character

此外,您不需要循环来构建值字符串,您可以使用C

implode()