Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中从动态文本字段自动添加名称值?_Php_Html - Fatal编程技术网

如何在PHP中从动态文本字段自动添加名称值?

如何在PHP中从动态文本字段自动添加名称值?,php,html,Php,Html,我有一张表格,如果有人选择了人、小孩或婴儿,总人数将计算,乘客名单将根据总人数显示,他们必须在表格中填写每个乘客的信息 每个输入名称将有不同的名称,如第二名乘客的名称:“乘客名称”2 现在,如果有人选择1个人并在表单上填写te数据,我将得到值的结果,但只有乘客姓名1,但是如果有人选择5个人,我将获得所有5个人的信息,我该怎么做 你可以查一下 因此,如果总人数为5人,则应在me php文件中添加此值,并发送填写的值: 'Passenger 1: ' . $_POST['passenger_name

我有一张表格,如果有人选择了人、小孩或婴儿,总人数将计算,乘客名单将根据总人数显示,他们必须在表格中填写每个乘客的信息

每个输入名称将有不同的名称,如第二名乘客的名称:
“乘客名称”2

现在,如果有人选择1个人并在表单上填写te数据,我将得到值的结果,但只有乘客姓名1,但是如果有人选择5个人,我将获得所有5个人的信息,我该怎么做

你可以查一下

因此,如果总人数为5人,则应在me php文件中添加此值,并发送填写的值:

'Passenger 1: ' . $_POST['passenger_name_1'] . " " . $_POST['passenger_lname_1'] . " " . $_POST['passenger_age_1'] . "<br />";
'Passenger 2: ' . $_POST['passenger_name_2'] . " " . $_POST['passenger_lname_2'] . " " . $_POST['passenger_age_2'] . "<br />";
'Passenger 3: ' . $_POST['passenger_name_3'] . " " . $_POST['passenger_lname_3'] . " " . $_POST['passenger_age_3'] . "<br />";
'Passenger 4: ' . $_POST['passenger_name_4'] . " " . $_POST['passenger_lname_4'] . " " . $_POST['passenger_age_4'] . "<br />";
'Passenger 5: ' . $_POST['passenger_name_5'] . " " . $_POST['passenger_lname_5'] . " " . $_POST['passenger_age_5'] . "<br />";
“乘客1:”$_张贴['passenger_name_1']。" " . $_邮政['passenger_lname_1']。" " . $_邮政['乘客年龄1']。“
”; “乘客2:”$_张贴['passenger_name_2']。" " . $_邮政['passenger_lname_2']。" " . $_邮政['passenger_age_2']。“
”; “乘客3:”$_张贴['passenger_name_3']。" " . $_邮政['passenger_lname_3']。" " . $_邮政['passenger_age_3']。“
”; “乘客4:”$_张贴['passenger_name_4']。" " . $_邮政['passenger_lname_4']。" " . $_邮政['乘客年龄4']。“
”; “乘客5:”$_张贴['passenger_name_5']。" " . $_邮政['passenger_lname_5']。" " . $_邮政['passenger_age_5']。“
”;
这是我的PHP

    <?php

if (isset($_POST['bestemming']))
{
$to = 'myemail@mail.com';
$subject = "Reservation";
$message = 

'Trip: ' . $_POST['bestemming'] . "<br /><br />" . 
'Persons: ' . $_POST['vol'] . "<br />" . 
'Kids: ' . $_POST['kinderen'] . "<br />" . 
'Babys: ' . $_POST['babys'] . "<br /><br />" . 

'Passenger infomation: ' . $_POST['passenger_name_1'] . " " . $_POST['passenger_lname_1'] . " " . $_POST['passenger_age_1'] . "<br />";

// Define the main headers.

$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);
}
也许这对你有帮助

<?php


    $count = 1;
    $next = true;

    while($next==true){

        //check if passenger_n exits
        if(isset($_POST['passenger_name_'.$count])){
            $message .='Passenger infomation: ' . $_POST['passenger_name_'.$count] . 
                " " . $_POST['passenger_lname_'.$count] . " 
                " . $_POST['passenger_age_'.$count] . "<br />";
        }else{
            //finish the loop
            $next = false;
        }
        //increase the passenger id
        $count++;
    }


?>

您在使用名称命名输入时使用了一些反模式,如
乘客姓名*

你应该考虑把名字定义为<代码>乘客名字[]/COD>。

[]
包含输入字段名,当发送到服务器时,应将其视为数组的一部分。PHP将在pfact中获取使用这些名称发布的值,并将它们组合成一个漂亮的数组,如
$\u POST['passenger\u name']

这大大简化了服务器端和客户机端代码,因为它不需要保留计数器来记录存在多少类似命名字段。因此,在客户端,您可以仅使用此通用名称轻松地添加或删除输入(无需计算输入的数量并在输入名称的末尾应用一些“索引”值,如
\u 1


在服务器端,您只需访问
$\u POST
中的数组,它们将自动为您编制数字索引,因此您不必检查大量变量,如
$\u POST['passenger\u name\u 1']
$\u POST['passenger\u name\u 2']
,您需要包括
$\u POST['passenger\u name\u 5']
和邮件脚本中的其他内容。更好的方法是在另一个包含添加了多少字段的字段中构建循环传递,然后使用
for
循环依次访问这些字段。
for($i…{$foo=$\u POST[“name_$i”];}
@MarcB谢谢!我在想..我需要一个循环!但是我怎么能添加它呢?只要把你的代码粘贴到我的php中就行了?但是这三个点是为了什么呢?用
passenger\u name
name属性创建一个输入数组怎么样?这样你就可以在php中循环该数组了?例如
。然后在php中你可以使用类似
foreach的东西($\u POST['passenger\u name']作为$index=>$name){/*go nuts*/}
。您也可以省略整数,只需使用
passenger\u name[]
,我喜欢将整数放在那里以确保名称(在本例中)为同一索引与任何其他输入对齐。嗨,贾斯珀,谢谢。是的,我可以在
passenger\u name[1]
中更改
passenger\u name\u 1
,但我确实需要将
foreach($\u POST['passenger\u name']作为$index=>$name){/*go nuts*/}
放在哪里?关于go nuts的意思是什么?@missseslima By“go nuts”我的意思是对不同的输入做任何你想做的事情。看起来你只是想列出乘客的名字,所以在循环中这样做。
foreach($\u POST['passenger\u name']as$index=>$name){$message.='passenger.($index+1)。:'.$name.$\u POST['passenger\u lname'[$index].$\u POST['passenger\u age'][$index]。
;}
。我假设您将从零索引开始输入,因此在我的示例中,我在创建
$message
输出时为每个索引添加了一个索引。谢谢,是的,我已经将其更改为passenger_name[1]等等。但是如何在PHP中自动生成$_POST?@misessalima如果不需要,我甚至不会显式指定索引(只需使用as
[]
就可以简化代码维护计数器)。PHP将自动获取名称以
[]
[*]结尾的任何参数
并将它们编译到
$\u POST['name of field']
的任何数组中,只要您使用的是与表单相关的内容类型之一(尽管您可能应该使用
application/x-www-form-urlcoded
,因为您没有进行文件上载)。在您的情况下,该数组将在
$\u POST中提供['passenger\u name']
,基于您所展示的内容。谢谢!所以我的帖子现在是:
'Personsinformation:'。$\u post['passenger\u name']。“

我有一个数组,比如:
foreach($\u post['passenger\u name']as$index=>$name){$message.='passenger.($index+1)。:'.$name.$\u post['passenger\n'.[$index]“.”.$\u POST['passenger_age'][$index].
;}
现在输出很好,但我看到的结果是“Array”,而不是填充的values@MissesSalima如果您尝试回显
$\u POST['passenger\u name']
正如您在这里所展示的,您将在输出中获得
Array
。它是一个数组,并不意味着要直接回显。
<?php


    $count = 1;
    $next = true;

    while($next==true){

        //check if passenger_n exits
        if(isset($_POST['passenger_name_'.$count])){
            $message .='Passenger infomation: ' . $_POST['passenger_name_'.$count] . 
                " " . $_POST['passenger_lname_'.$count] . " 
                " . $_POST['passenger_age_'.$count] . "<br />";
        }else{
            //finish the loop
            $next = false;
        }
        //increase the passenger id
        $count++;
    }


?>