将变量添加到数组php

时间:2014-01-22 13:35:21

标签: javascript php html forms

我有以下问题:

我制作了一个表单,客户可以在其中添加他们想要的一些项目,当他完成后,他将按下来自的提交按钮,将他带到确认页面。他应该看到所有产品,并在他们旁边订购的物品数量。

有我的问题,我将所有产品放在一个数组中:

$producten = array("Pizza Margherita", "Pizza Funghi", "Pizza Hawai", "Pizza Quatto Stagioni", "Pizza Calzone", "Broodje Shoarma" ,"Broodje Donor", "Durum Doner", "Knoflook Saus", "Whiskey Saus", "Sambal Saus");

我在页面上显示如下:

echo "<table>";

    foreach ($producten as $producten){
    echo "<tr>";
        echo "<td>";
            echo $producten;
        echo "</td>";
        echo "<td>";

        echo "</td>";
    echo "</tr>";
    }

    echo "</table>";

正如您所看到的,第二个TD为空,这里是我需要添加订购商品数量的地方。

但我真的不知道我应该如何制作它以便我可以添加我目前拥有的所有$_POST项目:

    $Margherita = $_POST['PizzaMargherita'];
    $Fungi = $_POST['PizzaFungi'];
    $Hawai = $_POST['PizzaHawai'];
    $QuattroStagioni = $_POST['PizzaQuattroStagioni'];
    $Calzone = $_POST['PizzaCalzone'];
    $Shoarma = $_POST['BroodjeShoarma'];
    $Doner = $_POST['BroodjeDoner'];
    $Durum = $_POST['DurumDoner'];
    $Knoflook = $_POST['KnoflookSaus'];
    $Whiskey = $_POST['WhiskeySaus'];
    $Sambal = $_POST['SambalSaus'];

我读了一些关于使输入字段名称像products[ ]之类的东西,但问题是我已经在前一页上使用了一段javascript代码的名称,如果我改变所有的名称,禁用整个JS代码。

我希望你们的问题很清楚。

但重新说一下:

如何在数组中添加$Margherita = $_POST['PizzaMargherita'];之类的变量,并将它们打印在表格的另一列中。

5 个答案:

答案 0 :(得分:0)

可以通过索引访问数组的特定元素。我不确定这是不是你的问题。我只是希望如此。

$_producten['PizzaMargherita'] = $_POST['PizzaMargherita'];

这将为您节省大量的写作。它将每个POST元素保存到产品数组中,并将每个索引命名为与$ _POST

中的完全相同
foreach($_POST as $k => $v) {
    $producten[$k] = $v;
}

答案 1 :(得分:0)

您需要一种方法来将帖子值(例如$ _POST ['PizzaMargherita'])与比萨饼的名称相关联。

最简单的方法是使用这些键索引初始数组producten

<?php
$producten = array(
  'PizzaMargherita'      => "Pizza Margherita",
  'PizzaFungi'           => "Pizza Funghi",
  'PizzaHawai'           => "Pizza Hawai",
  'PizzaQuattroStagioni' => "Pizza Quatto Stagioni",
  'PizzaCalzone'         => "Pizza Calzone", 
  'BroodjeShoarma'       => "Broodje Shoarma",
  'BroodjeDoner'         => "Broodje Donor", 
  'DurumDoner'           => "Durum Doner", 
  'KnoflookSaus'         => "Knoflook Saus", 
  'WhiskeySaus'          => "Whiskey Saus", 
  'SambalSaus'           => "Sambal Saus",
);
foreach ($producten as $key => $product){
  $number = isset($_POST[$key])?$_POST[$key]:'';
  echo "<tr>";
  echo "<td>";
  echo $product;
  echo "</td>";
  echo "<td>";
  echo $number;
  echo "</td>";
  echo "</tr>";
}

此解决方案不要求您编写$Margherita = $_POST['PizzaMargherita'];

之类的所有行

答案 2 :(得分:0)

我会创建一个关联数组,使用键作为项目,值作为金额,如下所示:

$producten = array("Pizza Margherita"=>"2", "Pizza Funghi"=>"1", "Pizza Hawai"=>"2");

然后你可以像这样预告:

echo "<table>";

    foreach ($producten as $item=>$quantity){
    echo "<tr>";
        echo "<td>";
            echo $item;
        echo "</td>";
        echo "<td>";
echo $quantity;
        echo "</td>";
    echo "</tr>";
    }

    echo "</table>";

答案 3 :(得分:0)

试试这个: (这就是我认为你的意思)

$producten['PizzaMargherita']['Aantal'] = $Margherita;

echo "<table>";

    foreach ($product as $producten){
    echo "<tr>";
        echo "<td>";
            echo $product;
        echo "</td>";
        echo "<td>";
            echo $product['Aantal'];
        echo "</td>";
    echo "</tr>";
    }

    echo "</table>";

应该这样做!

P.S。 Krijg er honger van!

答案 4 :(得分:0)

我知道这不是你想听到的答案,但这是正确和正确的方法:

<强> orderpage.html

<form action="summary.php" method="POST">
    Margherita
    <br />
    <input type="text" name="pizzas[Margherita]" value="0" />
    <br />
    <br />
    Fungi
    <br />
    <input type="text" name="pizzas[Fungi]" value="0" />
    <br />
    <br />
    Hawai
    <br />
    <input type="text" name="pizzas[Hawai]" value="0" />
</form>

<强> summary.php

<?php
// uncomment the line below when you need to debug
// echo '<div style="background-color:white; padding:15px;"><pre>'.print_r($_POST, true).'</pre></div>';

$total_pizzas = 0;

echo "<table>";

foreach ($_POST['pizzas'] as $producten=>$quantity)
{
    echo "<tr>";
    echo "<td>";
    echo "Pizza $producten";
    echo "</td>";
    echo "<td>";
    echo $quantity;
    echo "</td>";
    echo "</tr>";

    // make sure the user gave you a number before adding to total
    $total_pizzas+= (ctype_digit($quantity) ? $quantity : 0);
}

echo "<tr>";
echo "<td>";
echo "Total Pizzas";
echo "</td>";
echo "<td>";
echo $total_pizzas;
echo "</td>";
echo "</tr>";

echo "</table>";
?>

如果您需要帮助更改Javascript,请告诉我。