将表格值分隔到不同的单元格中
separating tables values into different cells
所以我已经开始掌握使用 fpdf 但我不确定的一件事是将数组值分隔到 pdf 形式的不同单元格中。
这是我遇到问题的表单部分。表格本身没问题,并通过我的 php 文件。
<table class="qualifications" id="qualifications" >
<tr>
<td><b>Date From</b></td>
<td><b>Date To</b></td>
<td><b>Name of School/College/Institute or Professional Body</b></td>
<td><b>Examinations Taken and Results</b></td>
</tr>
<tr>
<td><input type="text" name="date_from[]" id="date_from" /></td>
<td><input type="text" name="date_to[]" id="date_to"/></td>
<td><input type="text" name="school_name[]" id="school_name" /></td>
<td><input type="text" name="results[]" id="results"/></td>
</tr>
</table>
<a href="#" title="" class="add-row">Add Row</a>
用户可以使用添加行添加任意多的行link
这就是我从 table:
中获取值的方式
if( isset($_POST['date_from']) && is_array($_POST['date_from']) ) {
$from = implode(', ', $_POST['date_from']);
}
if( isset($_POST['date_to']) && is_array($_POST['date_to']) ) {
$to = implode(', ', $_POST['date_to']);
}
if( isset($_POST['school_name']) && is_array($_POST['school_name']) ) {
$schoolName = implode(', ', $_POST['school_name']);
}
if( isset($_POST['results']) && is_array($_POST['results']) ) {
$examResults = implode(', ', $_POST['results']);
}
当谈到填充 pdf 表单中的单元格时,我一直在做类似的事情:
$pdf->Cell($width_cell[0],10,$from,1,0,'C');
但这只是将每个输入 table 的值保留在一个单元格中
例如,如果有人在资格条件中输入了 2 行 table 并且值的日期是:
22/09/2002 和 10/10/18
这些只会显示在与 22/09/12、10/10/18 相同的单元格上
那么我将如何更改它,以便第二个值等位于第一个单元格下方?
希望这是有道理的
编辑:这就是我现在填充单元格的方式:
$width_cell=array(30,25,50,90);
$pdf->Cell($width_cell[0],10,'Date From',1,0); // First header column
$pdf->Cell($width_cell[1],10,'Date To',1,0); // Second header column
$pdf->Cell($width_cell[2],10,'Name of School',1,0); // Third header column
$pdf->Cell($width_cell[3],10,'Examinations Taken & Results',1,1); // Fourth header column
$pdf->SetFont('Arial','',10);
foreach ($from as $point => $data) {
$pdf->Cell($width_cell[0],10,$data,1,1,'C');
}
foreach ($to as $point => $data) {
$pdf->Cell($width_cell[1],10,$data,1,1,'C');
}
foreach ($schoolName as $point => $data) {
$pdf->Cell($width_cell[2],10,$data,1,1,'C');
}
foreach ($examResults as $point => $data) {
$pdf->Cell($width_cell[3],10,$data,1,1,'C');
}
编辑 2:我现在已经开始工作了,我将填充单元格的方式更改为:
$pdf->Cell($width_cell[0],10,'Date From',1,0); // First header column
$pdf->Cell($width_cell[1],10,'Date To',1,0); // Second header column
$pdf->Cell($width_cell[2],10,'Name of School',1,0); // Third header column
$pdf->Cell($width_cell[3],10,'Examinations Taken & Results',1,1); // Fourth header column
$pdf->SetFont('Arial','',10);
foreach ($from as $point => $data) {
$pdf->Cell($width_cell[0],10,$data,1,0,'C');
$pdf->Cell($width_cell[1],10,$to[$point],1,0,'C');
$pdf->Cell($width_cell[2],10,$schoolName[$point],1,0,'C');
$pdf->Cell($width_cell[3],10,$examResults[$point],1,1,'C');
}
假设您的表单检查确保每行中的所有 4 个字段都已完成,您可以简单地使用 foreach
浏览所有内容并将其添加到 PDF。
首先,不要破坏您的 _POST
阵列。保持它们完好无损,您将能够使用 foreach
浏览它们。
$from = (isset($_POST['date_from']) ? $_POST['date_from'] : array());
$to = (isset($_POST['date_to']) ? $_POST['date_to'] : array());
$schoolName = (isset($_POST['school_name']) ? $_POST['school_name'] : array());
$examResults = (isset($_POST['results']) ? $_POST['results'] : array());
foreach ($from as $point => $data) {
$pdf->Cell($width_cell[0],10,$data,1,1,'C');
// if you want to put the "to" in another cell it would be referenced
// as $to[$point] or $schoolName[$point] etc
}
如果您想将发件人、收件人和学校名称数据放在一行中,您可以使用如下内容:
$pdf->Cell($width_cell[0],10,'From: ' . $data .
' To: ' . $to[$point] .
' School Name ' . $schoolName[$point],1,1,'C');
所以我已经开始掌握使用 fpdf 但我不确定的一件事是将数组值分隔到 pdf 形式的不同单元格中。
这是我遇到问题的表单部分。表格本身没问题,并通过我的 php 文件。
<table class="qualifications" id="qualifications" >
<tr>
<td><b>Date From</b></td>
<td><b>Date To</b></td>
<td><b>Name of School/College/Institute or Professional Body</b></td>
<td><b>Examinations Taken and Results</b></td>
</tr>
<tr>
<td><input type="text" name="date_from[]" id="date_from" /></td>
<td><input type="text" name="date_to[]" id="date_to"/></td>
<td><input type="text" name="school_name[]" id="school_name" /></td>
<td><input type="text" name="results[]" id="results"/></td>
</tr>
</table>
<a href="#" title="" class="add-row">Add Row</a>
用户可以使用添加行添加任意多的行link
这就是我从 table:
中获取值的方式if( isset($_POST['date_from']) && is_array($_POST['date_from']) ) {
$from = implode(', ', $_POST['date_from']);
}
if( isset($_POST['date_to']) && is_array($_POST['date_to']) ) {
$to = implode(', ', $_POST['date_to']);
}
if( isset($_POST['school_name']) && is_array($_POST['school_name']) ) {
$schoolName = implode(', ', $_POST['school_name']);
}
if( isset($_POST['results']) && is_array($_POST['results']) ) {
$examResults = implode(', ', $_POST['results']);
}
当谈到填充 pdf 表单中的单元格时,我一直在做类似的事情:
$pdf->Cell($width_cell[0],10,$from,1,0,'C');
但这只是将每个输入 table 的值保留在一个单元格中
例如,如果有人在资格条件中输入了 2 行 table 并且值的日期是:
22/09/2002 和 10/10/18
这些只会显示在与 22/09/12、10/10/18 相同的单元格上
那么我将如何更改它,以便第二个值等位于第一个单元格下方?
希望这是有道理的
编辑:这就是我现在填充单元格的方式:
$width_cell=array(30,25,50,90);
$pdf->Cell($width_cell[0],10,'Date From',1,0); // First header column
$pdf->Cell($width_cell[1],10,'Date To',1,0); // Second header column
$pdf->Cell($width_cell[2],10,'Name of School',1,0); // Third header column
$pdf->Cell($width_cell[3],10,'Examinations Taken & Results',1,1); // Fourth header column
$pdf->SetFont('Arial','',10);
foreach ($from as $point => $data) {
$pdf->Cell($width_cell[0],10,$data,1,1,'C');
}
foreach ($to as $point => $data) {
$pdf->Cell($width_cell[1],10,$data,1,1,'C');
}
foreach ($schoolName as $point => $data) {
$pdf->Cell($width_cell[2],10,$data,1,1,'C');
}
foreach ($examResults as $point => $data) {
$pdf->Cell($width_cell[3],10,$data,1,1,'C');
}
编辑 2:我现在已经开始工作了,我将填充单元格的方式更改为:
$pdf->Cell($width_cell[0],10,'Date From',1,0); // First header column
$pdf->Cell($width_cell[1],10,'Date To',1,0); // Second header column
$pdf->Cell($width_cell[2],10,'Name of School',1,0); // Third header column
$pdf->Cell($width_cell[3],10,'Examinations Taken & Results',1,1); // Fourth header column
$pdf->SetFont('Arial','',10);
foreach ($from as $point => $data) {
$pdf->Cell($width_cell[0],10,$data,1,0,'C');
$pdf->Cell($width_cell[1],10,$to[$point],1,0,'C');
$pdf->Cell($width_cell[2],10,$schoolName[$point],1,0,'C');
$pdf->Cell($width_cell[3],10,$examResults[$point],1,1,'C');
}
假设您的表单检查确保每行中的所有 4 个字段都已完成,您可以简单地使用 foreach
浏览所有内容并将其添加到 PDF。
首先,不要破坏您的 _POST
阵列。保持它们完好无损,您将能够使用 foreach
浏览它们。
$from = (isset($_POST['date_from']) ? $_POST['date_from'] : array());
$to = (isset($_POST['date_to']) ? $_POST['date_to'] : array());
$schoolName = (isset($_POST['school_name']) ? $_POST['school_name'] : array());
$examResults = (isset($_POST['results']) ? $_POST['results'] : array());
foreach ($from as $point => $data) {
$pdf->Cell($width_cell[0],10,$data,1,1,'C');
// if you want to put the "to" in another cell it would be referenced
// as $to[$point] or $schoolName[$point] etc
}
如果您想将发件人、收件人和学校名称数据放在一行中,您可以使用如下内容:
$pdf->Cell($width_cell[0],10,'From: ' . $data .
' To: ' . $to[$point] .
' School Name ' . $schoolName[$point],1,1,'C');