首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果DOM中的名称属性数量未知,如何使用PHP使用FPDF创建新的单元格?

如果DOM中的名称属性数量未知,如何使用PHP使用FPDF创建新的单元格?
EN

Stack Overflow用户
提问于 2016-05-04 23:24:39
回答 2查看 452关注 0票数 0

我正在开发一个发票,当用户单击ADD按钮生成一个新字段时,它可以生成新的输入字段。然后,在文档的末尾,我做了一个"GET PDF“按钮,允许您获得发票的PDF副本一旦准备好。为了实现这一点,我一直在使用FPDF库,到目前为止,应用程序运行得非常好,除了一件事。PDF文档基本上必须单独构建,我找不到一种很好的方式让PHP查看我正在构建应用程序的文件,并检索所有值的名称属性,以便将它们注入到我在另一个文件中创建的FPDF模板中。我是PHP新手,我不知道该怎么做。包含发票应用程序的文件称为index.php,包含PDF模板的文件在pdf.php中

代码语言:javascript
复制
in index.php:
<form action="pdf.php" method="post">
 <div class="inputForms">
  <div id="input_fields" class="input_fields_wrap">
    <div class="new"><input  name="description" class="description"       type="text" maxlength="255" placeholder="Enter Description" value=""/>
                    <input  name="r" class="rate qty" type="text"  maxlength="255" placeholder="0" size="5" value=""/>
                    <input  name="p" class="pack price" type="text" maxlength="255" placeholder="$ 0.00" size="5" value=""/>
                    <input id="amount" class="amount" name="amount"   type="text"></div>
</div>
 </div>
</form>

in pdf.php:

<?php

$invoiceNumber = $_POST['InvoiceNumber'];
$clientName = $_POST['clientName'];
$address = $_POST['address'];
$phone = $_POST['phone'];
$insurance_name = $_POST['insurance_name'];
$claim = $_POST['claim'];
$description = $_POST['description'];
$r = $_POST['r'];
$p = $_POST['p'];
$amount = $_POST['amount'];
$totalAmount = $_POST['total_amount'];
$afterTax = $_POST['after_tax'];
$notes = $_POST['notes'];
require("fpdf/fpdf.php");

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont("Arial","",12);

$pdf->Cell(52);
$pdf->Cell(50,10,"The Company Name",1,0,"R");
$pdf->Cell(0,10,"INVOICE",1,1,"C");
$pdf->Cell(52);
$pdf->Cell(50,10,"City, State, Zip",1,0,"R");
$pdf->Cell(30,10,"Date:",1,0,"R");
$pdf->Cell(0,10,"04-15-2016",1,1,"L");
$pdf->Cell(52);
$pdf->Cell(50,10,"Phone: (555)777-7777",1,0,"R");
$pdf->Cell(30,10,"Time:",1,0,"R");
$pdf->Cell(0,10,"15 : 21 PM",1,1,"L");
$pdf->Cell(52);
$pdf->Cell(50,10,"Fax: (555)777-7777",1,0,"R");
$pdf->Cell(30,10,"#",1,0,"R");
$pdf->Cell(0,10,"{$invoiceNumber}",1,1,"L");
$pdf->Cell(52);
$pdf->Cell(0,10,"E-mail: something@example.com",1,1,"L");
$pdf->Image('images/hlogo.jpg',10,6,50);
$pdf->Cell(0,10,"",1,1,"C");
$pdf->Cell(90,10,"Bill To",1,0,"L");
$pdf->Cell(0,10,"Insurance Information",1,1,"L");
$pdf->Cell(90,10,"{$clientName}",1,0,"L");
$pdf->Cell(0,10,"{$insurance_name}",1,1,"L");
$pdf->Cell(90,10,"{$address}",1,0,"L");
$pdf->Cell(0,10,"{$claim}",1,1,"L");
$pdf->Cell(90,10,"{$phone}",1,0,"L");
$pdf->Cell(0,10,"",1,1,"C");
$pdf->Cell(0,10,"",1,1,"C");
$pdf->Cell(100,10,"item",1,0,"L");
$pdf->Cell(25,10,"Quantity",1,0,"C");
$pdf->Cell(25,10,"Rate",1,0,"C");
$pdf->Cell(0,10,"Amount",1,1,"C");

$pdf->Cell(100,10,"{$description}",1,0,"L");
$pdf->Cell(25,10,"{$r}",1,0,"C");
$pdf->Cell(25,10,"$ {$p}",1,0,"L");
$pdf->Cell(0,10,"$ {$amount}",1,1,"L");

$pdf->Cell(0,10,"",1,1,"C");
$pdf->Cell(150,10,"SubTotal",1,0,"R");
$pdf->Cell(0,10,"$ {$totalAmount}",1,1,"L");
$pdf->Cell(150,10,"Tax",1,0,"R");
$pdf->Cell(0,10,"% 6",1,1,"L");
$pdf->Cell(150,10,"Total",1,0,"R");
$pdf->Cell(0,10,"$ {$afterTax}",1,1,"L");
$pdf->Cell(0,10,"",1,1,"C");
$pdf->Cell(0,10,"Notes",1,1,"L");
$pdf->Cell(140,10,"{$notes}",1,1,"L");
$pdf->output();

?>      
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-04 23:39:59

我会用"field_01“、"field_02”等模式命名新字段。然后,您可以循环遍历创建的POST字段,如下所示:

代码语言:javascript
复制
foreach ($_POST as $key=>$value){
if (substr($key,0,6) === "field_"){
        $pdf->Cell(140,10,"$value",1,1,"L");
    }
}
票数 0
EN

Stack Overflow用户

发布于 2016-05-04 23:47:33

这里有一个简单的方法可以做到这一点:

通过使用循环:

备注:,您可以反复执行多次这样的操作,但是您可以像这样使其动态化:

代码语言:javascript
复制
<?php
//Assuming that $data holds all the elements of your specific name attribute
$data = $_POST; 
for ($i=0;$i <= count($data);$i++) {
$pdf->Cell($i); //Here you can do whatever you want with your cell
}
?>

注意: As $_POST包含所有输入字段值,如果您在表单中使用POST方法,那么它将计数所有这些输入字段,然后根据字段的数量创建单元格。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37039759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档