繁体   English   中英

动态添加输入字段的PHP表单处理

[英]PHP form handling for dynamically added input fields

我在处理动态添加的输入字段的PHP表单时遇到麻烦。

我正在测试的JavaScript和HTML代码可以在http://jsfiddle.net/wd5y9/中找到。 显然,这部分工作就像一个魅力。

这是我的PHP代码-

$emailSubject = 'Test Form';
$mailto = 'xxx@xxx.com';

$project = $_POST['project'];
$department = $_POST['department'];
$task = $_POST['task'];
$hours = $_POST['hours'];
$comment = $_POST['comment'];

date_default_timezone_set('America/Chicago');
$date = date('l F j, Y g:ia T');

$body = <<<EOD

<h2>Form Information</h2>
<table>
<tr>
<td><strong>Project</strong>: $project<br /></td>
<td><strong>Department</strong>: $department<br /></td>
<td><strong>Task</strong>: $task<br /></td>
<td><strong>Hours</strong>: $hours<br /></td>
<td><strong>Comment</strong>: $comment<br /></td>
</tr>
</table>

<p>Form submitted $date.</p>

EOD;

$headers = "From: xxx@xxx.com\r\n"; 
$headers .= "Content-type: text/html\r\n"; 
$success = mail($mailto, $emailSubject, $body, $headers); 

经过测试,这是电子邮件的发送方式-

表单信息项目:阵列部门:阵列任务:阵列工作时间:阵列注释:阵列

那我在做什么错? 谢谢!

您可能发布了数组。 所以你需要做类似的事情

$project = $_POST['project']['somethingHere'];

如果您发布$ _POST( print_r($_POST) )的print_r($_POST)我们将为您提供更多帮助。

编辑

从您的评论中,我看到您有两个项目,部门,评论等。

因此,为了使您的代码起作用,它应该是一个循环。

for($i=0; $i<=count($_POST['project']); $i++)
{
 <h2>Form Information</h2>
<table>
<tr>
<td><strong>Project</strong>: $project[$i]<br /></td>
<td><strong>Department</strong>: $department[$i]<br /></td>
<td><strong>Task</strong>: $task[$i]<br /></td>
<td><strong>Hours</strong>: $hours[$i]<br /></td>
<td><strong>Comment</strong>: $comment[$i]<br /></td>
</tr>
</table>
}

您有多个行(假定它们生成它们)以相同的名称发布到您的服务器,因此这些值实际上是这些值的数组。

因此,要访问第一个项目,您只需访问$ project数组的第一个值:

$project = $_POST['project'];
$firstProject = $project[0];

或者更好的方法是,将它们全部循环以吐出电子邮件中的所有行,如下所示:

foreach ($project as $i => $thisProject) {
?>

<h2>Form Information</h2>
<table>
<tr>
<td><strong>Project</strong>: $project[$i]<br /></td>
<td><strong>Department</strong>: $department[$i]<br /></td>
<td><strong>Task</strong>: $task[$i]<br /></td>
<td><strong>Hours</strong>: $hours[$i]<br /></td>
<td><strong>Comment</strong>: $comment[$i]<br /></td>
</tr>
</table>

<?php }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM