2015-02-11 56 views
1

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

表单结构

名称: [INPUT领域]

名字: [INPUT领域]

消息: [INPUT领域]

产品:

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>" 

等..

+2

'$产品= $ _POST [ '量'];' – 2015-02-11 10:17:57

回答

3

首先不使用@迹象。这真是邪恶,真的。

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

+0

更新了$产品变量设置为: $ products = $ _POST ['quantity']; 而更新的消息回声:。 “
产品3 - ” $ _ POST [ '量'] [3] “” 还不行。 – 2015-02-11 10:27:43

+0

@JamesJ。学习如何调试。在'$ _POST'和你的数组上使用'var_dump'。 – 2015-02-11 10:29:56

+0

array(0){}当我var_dump 未来的未初始化的字符串偏移量也是我得到的数量指数 – 2015-02-11 10:35:52

0

下面的例子是测试和工程(最佳做法已经被“遗忘”只是为了保持相同) 如果你仍然有你的代码有问题,我建议你张贴有关文件...

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