在FPDF中传递多重复选框值

时间:2014-01-24 15:05:27

标签: php fpdf

尝试将多重检查值传递到创建PDF文件的PHP文件中。

这是表单的HTML代码:

<tr>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Radiography (RT)" /></td>
    <td style="padding-left:4px;">Radiography (RT)</td>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Ultrasonic (UT)" /></td>
    <td style="padding-left:4px;">Ultrasonic (UT)</td>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Liquid Penetrant (PT)" /></td>
    <td style="padding-left:4px;">Liquid Penetrant (PT)</td>
</tr>
<tr>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Magnetic Particle (MT)" /></td>
    <td style="padding-left:4px;">Magnetic Particle (MT)</td>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Visual (VT)" /></td>
    <td valign="middle">Visual (VT)</td>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Leak (LT)" /></td>
    <td style="padding-left:4px;">Leak (LT)</td>
</tr>
<tr>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Eddy Current (EC)" /></td>
    <td style="padding-left:4px;">Eddy Current (EC)</td>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Infrared &amp; Thermography (I&amp;T)" /></td>
    <td style="padding-left:4px;">Infrared &amp; Thermography (I&amp;T)</td>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Acoustic Emission (AE)" /></td>
    <td style="padding-left:4px;">Acoustic Emission (AE)</td>
</tr>

这里我使用一些验证并将值传递给我的变量:

var checkBoxes=document.getElementsByName("afchek[]");

var booleanResult=false;
for(var i=0;i<checkBoxes.length;i++){
    if(checkBoxes[i].checked){
    booleanResult=true;
    break;
}
}

if(booleanResult==false){
    showError($afchek);
ok = false;
}

在这里,我将我的值传递给另一个创建pdf文件的php文件:

$.ajax({
type: 'POST',
url: 'pdf/create_ASNT.php',
data: 'afname=' + $afname.val() + '&affname=' + $affname.val() + '&afdob=' + $afdob.val() + '&afage=' + $afage.val() + '&afgender=' + gender + '&afresaddress=' + $afresaddress.val() + '&afresmobile=' + $afresmobile.val() + '&afresemail=' + $afresemail.val() + '&afstat=' + $afstat.val() + '&afmobile=' + $afmobile.val() + '&afemail=' + $afemail.val() + '&afchek[]=' + checkBoxes + '&afenroll=' + $afenroll.val() + '&aftimecontact=' + $aftimecontact.val() + '&page1=ASNT-NDT-form.php',
success: function(){
    $afsuccess.fadeIn();
    $aferror.fadeOut();
}

这里我正在检索查询字符串值:

$afname=ucfirst($_REQUEST["afname"]);
$affname=ucfirst($_REQUEST["affname"]);
$afdob=ucfirst($_REQUEST["afdob"]);
$afage=ucfirst($_REQUEST["afage"]);
$afgender=ucfirst($_REQUEST["afgender"]);
$afresaddress=ucfirst($_REQUEST["afresaddress"]);
$afresmobile=ucfirst($_REQUEST["afresmobile"]);
$afresemail=ucfirst($_REQUEST["afresemail"]);
$afstat=ucfirst($_REQUEST["afstat"]);
$afmobile=ucfirst($_REQUEST["afmobile"]);
$afemail=ucfirst($_REQUEST["afemail"]);
//our problem here
$afchek=ucfirst($_REQUEST["afchek"]);
$afenroll=ucfirst($_REQUEST["afenroll"]);
$aftimecontact=ucfirst($_REQUEST["aftimecontact"]);

现在我无法打印刚刚从该文件传递的值。我尝试了以下所有的事情......

for($i=0;$i<count($afchek);$i++) {
    //    $selected_colors=$selected_colors . $colors[$i] . " , ";
$pdf->Cell(54, 0, $afchek[$i]);
}

$acco = count($afchek);
$pdf->Cell(54, 0, $acco);

$acco = count($_GET["afchek"]);
$pdf->Cell(54, 0, $acco1);

foreach($_GET["afchek"] as $valuer) {
$pdf->Cell(54, 0, $valuer);
}

请有人帮忙解决这个问题。

2 个答案:

答案 0 :(得分:0)

改为使用POST supper全局变量。

e.g。

ucfirst($_POST["afname"]);

或者,尝试序列化数据并将其传递给您的php文件。

类似的东西:

$("#Your_Form_ID").on("submit",function(){
   postdata = $('#Your_Form_ID').serialize();
   $.ajax({
     type: 'POST',
     url: 'pdf/create_ASNT.php',
     data: postdata ,
     success: function(res){
         $afsuccess.fadeIn();
         $aferror.fadeOut();
     }
 });

在您的PHP文件中:

    $afname=ucfirst($_POST["afname"]);

希望有所帮助。

答案 1 :(得分:0)

我不知道你想要实现什么,但这是工作示例:这将打印您在PHP文件中提交的值。也尝试使用jquery。

<form action="formaction.php" id="form">
<table>
<tr>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Radiography (RT)" /></td>
    <td style="padding-left:4px;">Radiography (RT)</td>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Ultrasonic (UT)" /></td>
    <td style="padding-left:4px;">Ultrasonic (UT)</td>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Liquid Penetrant (PT)" /></td>
    <td style="padding-left:4px;">Liquid Penetrant (PT)</td>
</tr>
<tr>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Magnetic Particle (MT)" /></td>
    <td style="padding-left:4px;">Magnetic Particle (MT)</td>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Visual (VT)" /></td>
    <td valign="middle">Visual (VT)</td>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Leak (LT)" /></td>
    <td style="padding-left:4px;">Leak (LT)</td>
</tr>
<tr>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Eddy Current (EC)" /></td>
    <td style="padding-left:4px;">Eddy Current (EC)</td>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Infrared &amp; Thermography (I&amp;T)" /></td>
    <td style="padding-left:4px;">Infrared &amp; Thermography (I&amp;T)</td>
    <td style="padding-left:4px;"><input style="margin-top:0px; cursor:pointer;" type="checkbox" name="afchek[]" value=" Acoustic Emission (AE)" /></td>
    <td style="padding-left:4px;">Acoustic Emission (AE)</td>
</tr>
<tr>
    <td><input type="submit" name="submit" value="submit"></td>
</tr>
</table>
</form>
<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="main.js"></script>

以下是您提交表单的方式,它会提醒您提交的价值。

$(document).ready(function(){
    $("#form").on("submit",function(event){
           event.preventDefault();
           postdata = $('#form').serialize();
           $.ajax({
             type: 'POST',
             url: 'formaction.php',
             data: postdata,
             success: function(res){
                alert(res);
             }
        });
    });
});

这是您的PHP文件:返回通过表单提交的内容,并在您的ajax请求成功时提醒它。

<?php 
    //formaction.php
    $afname=$_POST["afchek"];
    foreach ($afname as $key => $afname) {
       echo ucfirst($afname);
    }
?>

现在您可以按照自己的方式使用此值。

演示链接:http://dharmeshpatel.net/core_reporting_api/test.php

希望有所帮助。不完全按照你想要的方式,但你会得到一个想法。