如何从动态添加自动输入表单元素的表单中获取/发布PHP中的值

如何从动态添加自动输入表单元素的表单中获取/发布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;

因此,我的表单基于总人数动态创建表单。 总人数为: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;

    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);
  }

  ?>