php表单问题,数组&$_职位


php form issue, arrays & $_POST

我目前正在尝试构建一个html.php表单,允许用户发送他们的联系信息并选择预定义产品的数量。到目前为止,联系信息运行良好,它向我的电子邮件发送了一封包含联系信息的电子邮件,但每个产品的数量都不起作用。请帮忙。

表单结构

名称:[输入字段]

姓氏:[输入字段]

消息:[输入字段]

产品:

Prod 1[数量字段]-简单数字输入字段

Prod 2[数量字段]-简单数字输入字段

Prod 3[数量字段]-简单数字输入字段

无论如何,这是我的产品的PHP代码,我使用的是数组。

<?php
    $my_products = array(
        '0' => 'product 0',
        '1' => 'product 1',
        '2' => 'product 2',
        '3' => 'product 3',
        '4' => 'product 4',
        '5' => 'product 5',
        '6' => 'product 6',
        '7' => 'product 7',
        '8' => 'product 8',
        '9' => 'product 9'
        '10' => 'product 10'
    );
    foreach ($my_products as $key => $value) {
        echo "<div class='"col-xs-6'" style='"margin: 10px 0 5px 0;'">";
            echo "<li class='"list-group-item'" data-style='"button'">";
                echo $value;
                echo "<input class='"form-control selectBox'" maxlength='"2'" min='"0'" max='"10'" type='"number'" onkeypress='"return isNumeric(event)'" oninput='"maxLengthCheck(this)'" name='"quantity[$key]>'"";
            echo "</li>";
        echo "</div>";
    }
?>

我试图从输入字段(数量)中回显结果,但它不起作用,它说它是未定义的。

在html文件的后面,我有php邮件功能,正如我所说,除了数量之外,其他一切都可以工作。

 $products = array(
    @$_POST['quantity[0]'], 
    @$_POST['quantity[1]'], 
    @$_POST['quantity[2]'],
    @$_POST['quantity[3]'],
    @$_POST['quantity[4]'],
    @$_POST['quantity[5]'],
    @$_POST['quantity[6]'],
    @$_POST['quantity[7]'],
    @$_POST['quantity[8]'],
    @$_POST['quantity[9]'],
    @$_POST['quantity[10]']);
$message = "<br /><strong>".$products[0]." - product 0</strong>"
  . "<br /><strong>".$products[1]." - product 1</strong>"
  . "<br /><strong>".$products[2]." - product 2</strong>"

等等。

首先不要使用@符号。这真的很邪恶。

您的值在$_POST['quantity']数组中,因此您可以像$_POST['quantity'][2]那样访问它。

下面的例子经过了测试并有效(为了保持一致,已经"忘记"了最佳实践)如果你的代码仍然有问题,我建议你发布相关文件。。。

index.php

<?php
$my_products = array(
    '0' => 'product 0',
    '1' => 'product 1',
    '2' => 'product 2',
    '3' => 'product 3',
    '4' => 'product 4',
    '5' => 'product 5',
    '6' => 'product 6',
    '7' => 'product 7',
    '8' => 'product 8',
    '9' => 'product 9',
    '10' => 'product 10');
?>
<form action="show.php" method="post" accept-charset="utf-8">
<?php
foreach ($my_products as $key => $value) {
    echo "<div class='"col-xs-6'" style='"margin: 10px 0 5px 0;'">";
        echo "<li class='"list-group-item'" data-style='"button'">";
            echo $value;
            echo "<input class='"form-control selectBox'" maxlength='"2'" min='"0'" max='"10'" type='"number'" name='"quantity[$key]>'"";
        echo "</li>";
    echo "</div>";
}
?>
<input type="submit">
</form>

show.php

<?php
$products = array(
$_POST['quantity']['0'],
$_POST['quantity']['1'],
$_POST['quantity']['2'],
$_POST['quantity']['3'],
$_POST['quantity']['4'],
$_POST['quantity']['5'],
$_POST['quantity']['6'],
$_POST['quantity']['7'],
$_POST['quantity']['8'],
$_POST['quantity']['9'],
$_POST['quantity']['10']);
$message = "<br /><strong>".$products[0]." - product 0</strong>"
  . "<br /><strong>".$products[1]." - product 1</strong>"
  . "<br /><strong>".$products[2]." - product 2</strong>";
echo $message;
?>