如何从动态添加自动输入表单元素的表单中获取/发布PHP中的值
因此,我的表单基于总人数动态创建表单。 总人数为:3人 然后会出现3个表格,每个表格都有不同的“ValueName”,如: 例如:如何从动态添加自动输入表单元素的表单中获取/发布PHP中的值,php,jquery,Php,Jquery,因此,我的表单基于总人数动态创建表单。 总人数为:3人 然后会出现3个表格,每个表格都有不同的“ValueName”,如: 例如: Lastname 1: MARVIN Lastname 2: JIM Lastname 3: ZOO 下面的代码将用一个要计算的数字对一个变量进行后缀,for循环将循环0到4(总共是5个字段),然后回显结果 您必须调整代码以匹配其他表单变量 <?php for($i=0;$i<5;$i++){ $var = 'lastname'.$i;
Lastname 1: MARVIN
Lastname 2: JIM
Lastname 3: ZOO
下面的代码将用一个要计算的数字对一个变量进行后缀,for循环将循环0到4(总共是5个字段),然后回显结果 您必须调整代码以匹配其他表单变量
<?php
for($i=0;$i<5;$i++){
$var = 'lastname'.$i;
if(isset($_POST[$var])){
echo $_POST[$var];
}
}
?>
<html>
<head>
<title></title>
</head>
<body>
<form action="<? $_SERVER['PHP_SELF'];?>" method="post">
<input type="text" name="lastname1" />
<input type="text" name="lastname2" />
<input type="text" name="lastname3" />
<input type="text" name="lastname4" />
<input type="text" name="lastname5" />
<input type="submit" value="test">
</form>
</body>
</html>
我看到你得到了数组中的值。但是你的php代码是初学者,剪切、粘贴、改编和“快乐思考”,我们都是从某一天开始的,所以我会详细回顾一下
您可以使用
$message.=
应该是:
$message=
当您启动Mesage,而不是连接到它时
然后,您可以使用以下方法进行后续操作:
$message=
现在连接到$message时,应该是
$message=
阅读:
然后是一些非常基本的东西
然后,使用“空白”跟随message=,这样php处理器将继续读取,直到找到语句闭包“;”。解析器找不到它,因为它一直在读取您的消息字符串,直到找到“From”。
这是因为解析器要么在“”或“”之间找到一个文本字符串,要么在一个串联运算符“”之间找到一个文本字符串,解析器将在串联运算符之间为其添加变量值。
正如您可以检查的那样,这两个条件一直满足,直到遇到“From”,此时解析将抛出一个错误,因为它需要一个statment闭包“;”或一个新的连接运算符,但找到了一个文本
如果未捕获到错误,则可能需要打开错误报告:
把这个放在这一页的开头:(一定要在生产中把它们拿出来!!)
快乐编码
然而,尽管有时可行,但绝对建议不要跨越多条线路
有两种选择,每行使用concaternate,就像您在$headers部分中所做的那样
或者使用herdoc语法,尽管这需要一些练习才能掌握
Heredoc sintax将在
这不起作用,因为如果总人数为20人,我应该添加其中的20人吗?这也是lastname[1]的值。请忽略我之前的评论-我再次阅读了你的问题,我可以看到你发送的JSFIDLE。i)更改jquery以删除[]-然后在PHP中尝试使用$\u POST['vol']作为要循环的总数。这是Person下拉列表。这将使上面的for循环变得动态。谢谢,我知道代码还没有完成,它只是用于测试。但这不是问题的答案,这是您原始问题的一部分,这一点也不清楚。在我写我的答案时,您的问题已经被删除了现在它不包含php代码。但是,如果您确实拥有发布的pos数组,此php将填充原始帖子的电子邮件部分。一般来说,您的$_post数组将在每个索引字段上包含一个值数组,如$_post['name'][index],因此,name[0]将是$_post['name'][0],name[1]将是$_POST['name'][1],有趣的是,您可以在表单上的任何索引字段上使用“foreach(数组表达式为$key=>$value)”遍历数组,并使用索引获取其他值,如果是php代码,则索引从“性别”字段中拉出。将其更改为“name”“如果你愿意,但结果是一样的。我想我对你的问题反应过度了,因为我的回答让你一直发送邮件,而你问题的最后一部分,Jaja。。。刚刚检查了我的代码答案,仍然有一些乱七八糟的东西,我会在几分钟内重新发布代码,以完全符合您的问题。
Lastname 1: MARVIN
Lastname 2: JIM
Lastname 3: ZOO
<?php
for($i=0;$i<5;$i++){
$var = 'lastname'.$i;
if(isset($_POST[$var])){
echo $_POST[$var];
}
}
?>
<html>
<head>
<title></title>
</head>
<body>
<form action="<? $_SERVER['PHP_SELF'];?>" method="post">
<input type="text" name="lastname1" />
<input type="text" name="lastname2" />
<input type="text" name="lastname3" />
<input type="text" name="lastname4" />
<input type="text" name="lastname5" />
<input type="submit" value="test">
</form>
</body>
</html>
error_reporting(E_ALL);
ini_set("display_errors", 0);
<?php
error_reporting(E_ALL);
ini_set("display_errors", 0);
foreach($_POST['name'] as $index => $name)
{ // Just for clarity sake,Obtain this person information. similarly could have been done inside the $message build,
// Left bornday to show how is that done......
$Passenger = ($index);
$Name = $name;
$LastName = $_POST['lastname'][$index];
$BornDay = $_POST['bornday'][$index];
$Trip = $_POST['destination'][$index];
$Persons = $_POST['vol'][$index];
$Kids = $_POST['kinderen'][$index];
$Babys = $_POST['Babys'][$index];
$message .= <<<EOD
Trip: $Trip<br><br>
Persons: $Persons<br>
Kids: $Kids<br>
Babys: $Babys<br><br>
Personsinformation: $Name $LastName {$_POST['bornday'][$index] <br><br>
EOD;
// DBG // Show the message
echo "The $index message is: $message<br>";
// Sending mail dpends a bit on you enviroment, supposig this applies:
$headers = 'From:' . $_POST['email'] . "\r\n";
$headers .= 'Reply-To:' . $_POST['email'] . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; ";
$headers .= "boundary=$num\r\n";
$headers .= "--$num\r\n";
// Define the message section
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "Content-Transfer-Encoding:8bit\r\n\n";
$headers .= "$message\r\n";
$headers .= "--$num\r\n";
// Send email
mail ($to, $subject, '', $headers);
print_r($_POST);
}
?>