1

array_combine用来显示一些用户选择的结果。

这是我的循环:

<?php if(get_field('sizes')) { ?>
<?php while(the_repeater_field('sizes')) { ?>
    <?php echo the_sub_field('size'); ?>
    <input type="text" class="quantity" name="quantity[]" value="0">
    <input type="hidden" class="productinput" name="product[]" value="<?php echo the_title(); ?> - <?php echo the_sub_field('size'); ?>">
<?php } ?>
<?php } ?>

这就是我输出结果的方式

$quantities = array_combine($_POST['product'], $_POST['quantity']);
foreach ($quantities as $product => $quantity) {
    if ($quantity > 0) {
        $productresults = "$quantity x $product";
    }
}
echo $productresults;

目前它只输出最后输入的数量和产品名称。例如,如果我更改 5 个输入,那么它只显示第 5 个。

我缺少什么来显示所有已更改的输入?

4

3 回答 3

2

使用下面的代码,问题是您$productresultsforeach循环后输出,因此它会回显分配的最后一个值。

$productresults = "";
$quantities = array_combine($_POST['product'], $_POST['quantity']);
foreach ($quantities as $product => $quantity) {
    if ($quantity > 0) {
        $productresults .= "$quantity x $product ";
    }
}
echo $productresults;
于 2013-02-15T09:20:40.260 回答
0

将结果保存在数组中。

   $quantities = array_combine($_POST['product'], $_POST['quantity']);
    foreach ($quantities as $product => $quantity) {
        if ($quantity > 0) {
            $productresults[] = "$quantity x $product";
        }
    }
    print_r($productresults);
于 2013-02-15T09:23:09.000 回答
0
$quantities      = array_combine($_POST['product'], $_POST['quantity']);
$productresults  = array();
foreach ($quantities as $product => $quantity) {
    if ($quantity > 0) {
        $productresults[] = $quantity x $product;
    }
}

echo implode(",", $productresults); // implode it with any thing you need.
于 2013-02-15T09:33:30.903 回答