[英]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.