Javascript 向php数组中添加变量

Javascript 向php数组中添加变量,javascript,php,html,forms,Javascript,Php,Html,Forms,我有以下问题: 我制作了一个表单,客户可以在表单中添加他们想要的项目,完成后,他将按下“发件人”上的“提交”按钮,将其带到确认页面。他应该在哪里看到所有的产品,旁边是订购的物品数量 这是我的问题,我将所有产品放在一个数组中,如下所示: $producten = array("Pizza Margherita", "Pizza Funghi", "Pizza Hawai", "Pizza Quatto Stagioni", "Pizza Calzone", "Broodje Shoarma" ,"

我有以下问题:

我制作了一个表单,客户可以在表单中添加他们想要的项目,完成后,他将按下“发件人”上的“提交”按钮,将其带到确认页面。他应该在哪里看到所有的产品,旁边是订购的物品数量

这是我的问题,我将所有产品放在一个数组中,如下所示:

$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>";
我读过一些关于将输入字段命名为
products[]
之类的东西,但问题是我已经在上一页上使用了一段javascript代码的名称,如果我更改了所有名称,就会禁用整个JS代码

我希望我的问题对你们来说是清楚的

但简单地说:


如何添加变量,如
$margerita=$\u POST['pizzamagerita']并让它们在我的表的另一列中打印出来。

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

$_producten['PizzaMargherita'] = $_POST['PizzaMargherita'];
这将节省你大量的写作。它将每个POST元素保存到产品数组中,并按照$\u POST中的格式对每个索引进行命名

foreach($_POST as $k => $v) {
    $producten[$k] = $v;
}

您需要一种方法将posts值(比如说$u POST['pizzamagerita'])与比萨饼的名称关联起来

最简单的方法是使用以下键对初始数组
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>";
}

我将创建一个关联数组,使用键作为项,值作为量,如下所示:

$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>";
然后你可以这样做:

$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>";
echo”“;
foreach($producten as$item=>$quantity){
回声“;
回声“;
echo$项目;
回声“;
回声“;
回声$数量;
回声“;
回声“;
}
回声“;
试试这个: (这就是我认为你的意思)

$producten['pizzamagrita']['Aantal']=$margrita;
回声“;
foreach($product as$producten){
回声“;
回声“;
echo$产品;
回声“;
回声“;
echo$产品['Aantal'];
回声“;
回声“;
}
回声“;
那就够了


p.S.Krijg er honger van

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

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的帮助,请告诉我。

$someArray=array($margerita,$Funghi等…)
@RoyalBg我这样尝试过,但在我运行代码的页面上,它显示了Pizza-margerita数组,Pizza-Funghi数组,所有数组都在下面。您需要第二个foreach,或者一个计数器,用于keys@RoyalBg我应该把这个foreach放在第二个TD中,还是完全错了。例如,如果
$someArray[0]=$margerita
,那么您可以使用
$i=0;对于每一个($producten as$producted){//…一些HTML…//“$producted$someArray[$i]”;$i++;}
,$i将在每次迭代中递增,因此在第一次迭代中,您将获得第一个
$producted
(不要以相同的方式命名数组和值),在同一次迭代中,您将获得
$someArray[0]
,第二个-您将获得第二个$producted和
$someArray[1]
它不应该替换数组中的我的项目,它需要在我的数组产品旁边添加第二列,其中显示所有金额,这些金额都是我的$\u POSTvariables@Farewyth它不会取代,,因为钥匙是不同的谢谢你为帮助我付出的努力!这正是我想要的。