php表单问题,数组& $ _ POST

时间:2015-02-11 10:15:22

标签: php html arrays forms

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

表单结构

命名: [INPUT FIELD]

名字: [INPUT FIELD]

消息: [INPUT FIELD]

产品:

Prod 1 [QUANTITY FIELD] - 简单的数字输入字段

Prod 2 [QUANTITY FIELD] - 简单的数字输入字段

Prod 3 [QUANTITY FIELD] - 简单的数字输入字段

无论如何,这是我的产品的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>"

依旧......

2 个答案:

答案 0 :(得分:3)

首先不要使用@标志。这真是邪恶。

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

答案 1 :(得分:0)

以下示例已经过测试并且有效(最佳做法已被遗忘&#34;只是为了保持相同) 如果您的代码仍有问题,我建议您发布相关文件......

的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;
?>