请原谅我缺乏术语和PHP的知识我对它很缺乏经验。 我有来自pdfmerger开源代码的PHP示例。
include 'PDFMerger.php';
$pdf = new PDFMerger;
$pdf ->addPDF('samplepdfs/page1.pdf' , 'all')
->addPDF('samplepdfs/page2.pdf' , 'all')
->merge('download', 'mypdf.pdf' );
我想从表单动态创建它。因此,当有人从表单中选择他们想要两个页面并单击提交时,它将通过已发布的数组并为数组中的每个值添加页面。
所以表单看起来像这样: -
<form action="test.php" method="post">
Page1? : <input name="Page1" type="checkbox" value="one.pdf" /><br><br>
Page2? : <input name="Page2" type="checkbox" value="two.pdf" /><br><br>
Document Name? : <input name="name" type="text" value="MYPDF1.pdf" /><br><br>
<input type="submit">
</form>
我希望php能够完成这些值并执行下面的操作,我知道这是不正确的。
include 'PDFMerger.php';
$name = $_POST["name"];
$arr = $_POST;
$pdf = new PDFMerger;
$pdf
foreach($arr as &$value){
->addPDF('samplepdfs/' . $value , 'all')
};
->merge('download', $name );
这意味着我可以在表单中添加任意数量的项目,并允许用户从表单中选择任何pdf组合,然后合并它们。
我知道这是错的,但我找不到(因为我真的不知道要搜索什么)任何帮助我弄明白的东西。
另外,我如何阻止循环获取名称(循环中的最后一个值),因为我想手动将其添加到 - &gt;合并对象。
感谢您的帮助。
答案 0 :(得分:0)
更新
我不认为你的想法太过分了,下面的内容会让你走上正轨 注意:输入名称&#34;页面[]&#34;将值存储在数组中,您必须动态生成标签(例如Page1?,Page2?)&amp;输入的值(例如one.pdf,two.pdf),以使表单更具动态性,即每次添加新文档时不必手动添加行。
<form action="test.php" method="post">
Page1? : <input name="page[]" type="checkbox" value="one.pdf" /><br><br>
Page2? : <input name="page[]" type="checkbox" value="two.pdf" /><br><br>
Document Name? : <input name="name" type="text" value="MYPDF1.pdf" /><br><br>
<input type="submit">
</form>
<?php
include 'PDFMerger.php';
$name = $_POST["name"]; // add some validation and / or sanitise here
$pageArray = $_POST['page']; // add some validation and / or sanitise here
$pdf = new PDFMerger;
foreach ($pageArray as $value) {
$pdf->addPDF('samplepdfs/'.$value, 'all');
}
$pdf->merge('download', $name);