0

任何人都可以帮助解决我无法理解的表单问题吗?我有一组复选框,其值无法显示在生成的邮件中。

这是我用来设置变量的方法:

    $benefit01  = ($_POST['benefit_01']);
$benefit02  = ($_POST['benefit_02']);
$benefit03  = ($_POST['benefit_03']);
$benefit04  = ($_POST['benefit_04']);
$benefit05  = ($_POST['benefit_05']);
$benefit06  = ($_POST['benefit_06']);

$property   = addslashes($_POST['property']);
$owner      = addslashes($_POST['owner']);
$mainHeating    = addslashes($_POST['Heating_mainHeating_answer']);
$boiler_working = addslashes($_POST['boiler_working']);
$boiler_age = addslashes($_POST['boiler_age']);

$postcode   = addslashes($_POST['postcode']);
$address1   = addslashes($_POST['address1']);
$address2   = addslashes($_POST['address2']);
$address3   = addslashes($_POST['address3']);
$city       = addslashes($_POST['town']);
$county     = addslashes($_POST['county']);

$name       = addslashes($_POST['firstName']);
$surname    = addslashes($_POST['surname']);
$email      = addslashes($_POST['email']);
$phone      = addslashes($_POST['phonenum']);


$type   = addslashes($_POST['type']);
$time   =   $_POST['time'];
$src = $_POST['urlsrc'] ;

$benefits   = $benefit01." ".$benefit02." ".$benefit03." ".$benefit04." ".$benefit05." ".$benefit06;
$address = $address1." ".$address2;
$note = "Benefits: ".$benefits.". Property Type: ".$property.". Home Owner: ".$owner.". Type of Heating: ".$mainHeating.". Boiler Working: ".$boiler_working.". Boiler Age: ".$boiler_age.". Timescales: ".$time.". Address Line 3: ".$address3;

所以“好处”是复选框。我曾尝试将它们都命名为相同的名称以创建一个数组,然后将这些值内爆,但这也不起作用。最终,这些数据被发送到数据库,这就是为什么大部分信息都被转储到 $note 变量中的原因。

我对此知之甚少,并从一个工作(尽管是简化的)表单中获取了这个示例。任何帮助表示赞赏。

** 下面添加的表格小样本:

    <input name="ctl00_chkBenefit" type="checkbox" id="benefit_01" class="checkbox-benefit" value="Child Tax Credit" />

儿童税收抵免(相关收入为 15,860 英镑或以下)

     <input name="ctl01_chkBenefit" type="checkbox" id="benefit_02" class="checkbox-benefit" value="State Pension Credit" />

国家养老金信贷

4

4 回答 4

1

你的复选框的 HTML 是这样的吗?

<input type="checkbox" name="benefit_01" value="Benefit 01" /> Benefit 01

然后,如果该复选框将由用户选中,$_POST['benefit_01']将是该复选框的值 - Benefit 01

如果不勾选,$_POST['benefit_01']则不设置。

编辑1:

以及您应该拥有的所有内容<form>,以及设置的方法和操作:

<form action="index.php" method="post">
     <input name="ctl00_chkBenefit" type="checkbox" id="benefit_01" class="checkbox-benefit" value="Child Tax Credit" />
</form>

编辑2:

你有不同name的复选框。你用在你$_POSTid,不是name

将您的代码更改为:

$benefit01  = ($_POST['ctl00_chkBenefit']);
$benefit02  = ($_POST['ctl01_chkBenefit']);
$benefit03  = ($_POST['ctl02_chkBenefit']);
$benefit04  = ($_POST['ctl03_chkBenefit']);
$benefit05  = ($_POST['ctl04_chkBenefit']);
$benefit06  = ($_POST['ctl05_chkBenefit']);

现在它将 100% 工作:)

于 2013-11-13T12:12:55.067 回答
1

首先,

<input type="checkbox" name="benefits[]" value="one">
<input type="checkbox" name="benefits[]" value="2">
<input type="checkbox" name="benefits[]" value="III">

将在 PHP 中创建一个数组 $_POST['benefits']。

其次,如果复选框被选中,变量将只包含值。

于 2013-11-13T12:15:46.383 回答
0

如果用户未选中,则不会在 $_POST 中设置输入复选框。您可以使用empty()来确定它们是否已设置和/或为空,然后将值设置为您要插入数据库的值。

于 2013-11-13T12:12:10.423 回答
-1
crate the input field name like this 

<input type="checkbox" name="c[]" value="1">
<input type="checkbox" name="c[]" value="2">
<input type="checkbox" name="c[]" value="3">
<input type="submit" >

而PHP你可以这样写——

<?php 
$_POST['benefits'] 
?>
于 2013-11-13T12:17:23.103 回答