【发布时间】:2014-03-17 04:56:09
【问题描述】:
我开发了一份我的公司用来跟踪里程费用的 PDF 表格。当用户完成时,用户通过单击按钮提交文档。提交后,它会发布到 php 网页并将字段信息写入 MySQL 数据库。这很好,但我们需要让用户使用 PDF 电子签名字段对文档进行签名。我无法将签名发布或写入数据库。字段名称是签名。任何帮助都会很棒。
代码如下(无签名):
<?php
include_once('../php/functions.php');
$sig_month = $_POST['sig_month'];
$sig_day = $_POST['sig_day'];
$sig_year = $_POST['sig_year'];
$mileage_rate = $_POST['mileage_rate'];
$form_id = $_POST['form_id'];
$submission_date = $_POST['submission_date'];
$signed = $_POST['signed'];
$employee_name = $_POST['employee_name'];
if(strlen($sig_month) == 1){
$sig_month = "0".$sig_month;
}
if(strlen($sig_day) == 1){
$sig_day = "0".$sig_day;
}
$employee_initial = $employee_name[0];
$employee_explode = explode(" ", $employee_name);
$employee_email = $employee_initial . $employee_explode[1];
$employee_email = strtolower($employee_email) . "@fbhi.net";
$mileage_rate = "0.".$mileage_rate;
$query="SELECT * FROM employee WHERE email = '$employee_email'";
$ifExists = ifExists($query,$db_con);
if($ifExists > 0){
$result = queryMysqli($query,$db_con);
while($row = mysqli_fetch_array($result)){
$employee_name = $row['first_name'] . " " . $row['last_name'];
$error = 0;
$success = 0;
$x = 1;
$query1 = "DELETE FROM mileage_form WHERE form_id = '$form_id'";
if(!queryMysqli($query1,$db_con)){
$error++;
}
while($x < 8){
$month = $_POST['month_day'.$x];
$day = $_POST['day_day'.$x];
$year = $_POST['year_day'.$x];
$purpose = $_POST['purpose_day'.$x];
$miles = $_POST['miles_day'.$x];
if(strlen($month) == 1){
$month = "0".$month;
}
if(strlen($day) == 1){
$day = "0".$day;
}
if($employee_name != "" && $mileage_rate != "" && $month != "" && $day != "" && $year != "" && $purpose != "" && $miles != "" && $form_id != "" && $submission_date != "" && $sig_month != "" && $sig_day != "" && $sig_year != "" && $signed == "t"){
$query = "INSERT INTO mileage_form (employee_name,mileage_rate,month,day,year,purpose,miles,sig_month,sig_day,sig_year,submission_date,signed,form_id)
VALUES ('$employee_name','$mileage_rate','$month','$day','$year','$purpose','$miles','$sig_month','$sig_day','$sig_year','$submission_date','$signed','$form_id')";
if(!queryMysqli($query,$db_con)){
$error++;
}else{
$success++;
}
}
$x++;
}
if($error != 0){
echo "Something went wrong! Your mileage claims did not submit!";
}
if($success != 0){
echo "<center>Mileage claims have been submitted for <br /><font size=6><strong>$employee_email</strong/></font><br />If this is not the correct email, contact your IT Administrator immediately!";
}else{
echo "Your mileage form is incomplete. Ensure all of the required information is finished, and then resubmit your form.";
}
}
}else{
echo "<center>Sorry, your email is not registered in our database. If you are positive your email is $employee_email, please contact your IT Administrator";
}
?>
【问题讨论】:
-
我们需要查看您使用的“签名”代码。我们无法猜测将什么放在哪一列。
-
pdf 上的签名只是一个简单的字段,可以在 Acrobat 上拖放。至于它在 MySQL 数据库中的位置,只有一个签名列以及其他信息。在您看到插入 INTO mileage_form 的地方,应该插入签名字段。示例:INSERT INTO mileage_form (employee_name,mileage_rate, ... ,form_id,signature)VALUES ('$employee_name','$mileage_rate', ... ,'$form_id','$signature')";
-
嗯,这告诉我 Acrobat 无法与您的代码通信,可能需要某种形式的权限集。我有点难以理解您想如何使用拖放选项,然后将其设置为变量。
-
是的,我不确定您是否曾经在 acrobat 中创建过 PDF 表单,但是您可以使用一组不同的字段(即文本框、下拉菜单等),以及签名字段是这些选项之一。创建它时,将它拖到 PDF 表单上,然后保存。然后分发表格。创建签名字段时,我只是将其拖到表单上并保存。签名字段将始终存在,具有相同的名称和属性,一旦分发。
-
您可以在这里查看pdf表格: