表单提交不设置数字输入的POST变量

时间:2016-02-28 12:44:27

标签: php forms session post

在提交表单时遇到了一些问题。

形式:

<form action='warenkorb_aktual.php' method="post">

PHP-片断(warenkorb.php):

<?php
session_start();

if( !isset($_SESSION['menge']) ){
    $menge = '1'; //standard value
}
else{
    $menge = $_SESSION['menge'];
}
.
.
.
echo "

    <td class='produktpadding'>
        <input name='inputanzahl' value='" . $menge . "' id='inputanzahl' type='number' min='1' max='10' class='input_anzahl form-control' />
    </td>
    <td>
        <div >
          <button type='submit' class='btn btn-default'><i class='fa fa-refresh'></i></button>
        </div>
   </td>
";

.
.
.

?>

warenkorb_aktual.php:

<?php
    session_start();
    $menge = $_POST['inputanzahl'];
    $_SESSION['menge'] = $menge;
    header("Location: warenkorb.php");


?>

我想要实现的目标:

输入字段中的数字应通过在输入字段中键入数字来设置。提交表单后,应使用warenkorb_aktual.php进行设置(出于原因)。但这不起作用

1 个答案:

答案 0 :(得分:0)

我找到了问题的答案。 首先,问题是什么: 我在我的网站上有几个输入字段,每个字段都以相同的形式存在(如上所述,但它们处于循环中)。事情:所有输入字段都具有相同的名称,因此代码(在warenkorb_aktual.php中)总是覆盖后变量。

修正: 1)

if(isset($_SESSION['menge'])){
    foreach($_SESSION['menge'] as $einzel){
        $menge[] = $einzel;
    }
    print_r($_SESSION['menge']);
    unset($_SESSION['menge']);

}

2)

$i=0;
while(..condition..){
    if( !isset($_SESSION['menge']) ){
                            $menge[$i] = 1;
                        }
        .
        .
        .
    echo "

           <td class='produktpadding'>
              <input name='inputanzahl[]' value='" . $menge[$i] . "'  type='number' min='1' max='10' class='input_anzahl form-control' />
            </td>
            <td>
              <div >
                 <button type='submit' class='btn btn-default'><i class='fa fa-refresh'></i></button>
               </div>
            </td>

    ";
$i++;
}

我希望这可以帮助一些人