簡體   English   中英

PHP復選框數組后將檢查值添加到每個連續數組

[英]PHP checkbox array post adding checked value to each successive array

我正在使用表單構建器,並且用戶可以創建復選框的多個部分。 如果只有一個部分,則可以很好地發送檢查值。

當存在兩個或多個不同的復選框部分時,發送的值將在先前的復選框部分中附加先前檢查的值,如下所示:

復選框部分1 =測試1
復選框2 =測試1,空調
復選框3 =測試1,空調,第二秒1

換句話說,第二和第三復選框不應包含先前的值。

我已經接近完成,但是任何幫助將不勝感激。

這是HTML。 您可以看到每個都有自己的數組:

的HTML

Checkbox section 1
<input type="checkbox" name="txt5[]" value="test 1">test 1 
<input type="checkbox" name="txt5[]" value="test 2">test 2 
<input type="checkbox" name="txt5[]" value="test 3">test 3 
<input type="checkbox" name="txt5[]" value="test 4">test 4

Checkbox section 2
<input type="checkbox" name="txt6[]" value="Air Conditioning">Air Conditioning 
<input type="checkbox" name="txt6[]" value="Plumbing">Plumbing 
<input type="checkbox" name="txt6[]" value="Mechanical">Mechanical

Checkbox section 3
<input type="checkbox" name="txt7[]" value="second 1">second 1 
<input type="checkbox" name="txt7[]" value="second 2">second 2 
<input type="checkbox" name="txt7[]" value="second 3">second 3 
<input type="checkbox" name="txt7[]" value="second 4">second 4 

PHP-在下面的PHP代碼部分中,您會看到一個部分,檢查該部分是否為數組,然后遍歷所有項。 問題是它沒有刪除先前數組中的先前檢查的項目:

$str_mail_cont="<html>
<head>
<title></title>
</head>
<body style=\"background-color:#f1f2f2; margin-top:10px;\">
<table align=\"center\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" style=\"background-color:#FFFFFF; border-top: none; font-family:Verdana; line-height:20px; font-size:9pt\" bordercolor=\"#111111\" width=\"95%\" id=\"AutoNumber1\">
 <tr>
    <td colspan='2' align=left><U><b>".$form_title."</b></U></td>
 </tr>";
while($result_fld = mysql_fetch_array($rs_flds))
        {

            $amm = 'txt'.$num;
            $fld_name=$result_fld['field_name'];
            $temp = $_POST[$amm];


     if(is_array($temp) && count($temp)>=1)
        {

            $str_mail_filed="<tr><td align='left' width='30%'><b>".$fld_name." :</b></td><td align='left'>";
            $str_mail_cont.=$str_mail_filed;

                for($k=0;$k<count($temp);$k++)
                {
                    $chkbox_str .= $temp[$k].', ';
                                                        }                      
                $chkbox_str = trim($chkbox_str, ', ');

                $str_mail_cont .= $chkbox_str;
                $str_mail_cont.="</td>";
        }
        else
        {
                $str_mail_cont.="<tr><td><b>".$fld_name." :</b></td><td align='left'> ".$temp."</td></tr>";
        }
             $num++;
        }

$str_mail_cont.="</table>
</body>
</html>";

}

最終結果是它發送帶有以下內容的電子郵件:

Test Items :    test 1
Reason(s) For Request : test 1Air Conditioning
More Tests :    test 1Air Conditioningsecond 1

謝謝你的幫助!

一些額外的信息..這是var_dump($temp)

array(1) {
    [0]=> string(6) "test 1"
}
array(1) {
    [0]=> string(16) "Air Conditioning"
}
array(1) {
    [0]=> string(8) "second 1"
}

我想通了。 我只是在循環每個復選框數組的部分上方添加了一個變量聲明,如下所示:

$chkbox_str ='';

現在可以正常工作了!

暫無
暫無

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

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