簡體   English   中英

努力處理PHP表單處理

[英]Struggling with PHP form processing

有人可以解決我無法理解的表格問題嗎? 我有一組復選框,其值無法顯示在結果郵件中。

這是我用來設置變量的方法:

    $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" />

國家養老金信貸

您的復選框的HTML是這樣的嗎?

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

然后,如果該復選框將由用戶選中,則$_POST['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']);

現在它將適用於100%:)

首先,

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

將在PHP中創建$ _POST ['benefits']數組。

其次,如果選中此復選框,則變量將僅包含值。

如果用戶未選中輸入復選框,則不會在$ _POST中設置輸入復選框。 您可以使用empty()來確定它們是否已設置和/或為空,然后將值設置為要插入數據庫的值。

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'] 
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM