2013-04-29 99 views
0

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

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

这是我的PHP代码 -

$emailSubject = 'Test Form'; 
$mailto = '[email protected]'; 

$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: [email protected]\r\n"; 
$headers .= "Content-type: text/html\r\n"; 
$success = mail($mailto, $emailSubject, $body, $headers); 

这里是电子邮件的测试后,如何来通过 -

表单信息 项目:阵列 部:阵列 任务:数组 时间: Array 评论:Array

那么我在做什么错了?谢谢!

回答

0

您可能已经发布了数组。所以,你需要的,如果您发布$ _ POST(print_r($_POST))的print_r的,我们将能够帮助你更要像做

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

编辑

从您的评论我看到你有两个项目,各部门,留言等等

因此,为了使你的代码工作它应该是一个循环。

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> 
} 
+0

好,这里是的print_r返回什么: 阵列([项目] =>阵列([0] => [1] =>)[部门] =>阵列([0 ] => [1] =>)[task] => Array([0] => [1] =>)[hours] => Array([0] => 3 [1] => 4) => Array([0] => t est1 [1] => test2)[submit] =>提交表格) – Jennifer 2013-04-29 15:53:18

+0

添加'for($ i = 0; $ I <=计数值($ POST [ '项目']); $ i ++)'导致出现以下错误 解析错误:语法错误,意外的T_ENCAPSED_AND_WHITESPACE,期望T_STRING或T_VARIABLE或T_NUM_STRING在...在第23行。也许我把它复制错了? – Jennifer 2013-04-29 20:44:55

+0

@Jennifer我不好意思忘了$​​ _POST。请再试一次。 – idipous 2013-04-30 06:41:43

0

你有多行(假设他们生成)张贴到具有相同名称的服务器,所以值实际上这些值的数组。

所以要访问的第一个项目,你只是访问$项目数组的第一个值:

$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 } 
相关问题