任何人都可以帮助解决我无法理解的表单问题吗?我有一组复选框,其值无法显示在生成的邮件中。
这是我用来设置变量的方法:
$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;
所以“好处”是复选框。我曾尝试将它们命名为同一个来创建一个数组,然后插入值,但这也不起作用。最终这些数据被发送到dbase,这就是为什么大部分信息都被转储到$ 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" />
国家养老金信贷
答案 0 :(得分:1)
你的复选框的HTML是这样的吗?
<input type="checkbox" name="benefit_01" value="Benefit 01" /> Benefit 01
然后,如果用户选中该复选框,$_POST['benefit_01']
将是该复选框的值 - 收益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
。您在$_POST
他们id
使用了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']);
。
将您的代码更改为:
{{1}}
现在它将100%工作:)
答案 1 :(得分: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']。
其次,如果选中复选框,变量将仅包含该值。
答案 2 :(得分:0)
如果用户未选中,则在$ _POST中未设置输入复选框。您可以使用empty()
确定它们是否已设置和/或为空,然后将值设置为要插入数据库的值。
答案 3 :(得分:-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']
?>