php 循环中的项目数取决于另一个循环

Number of items in a php loop depend on another loop

我需要弄清楚如何构建一个循环,其中的数字将取决于之前在另一个循环中 select 编辑的数字。

我正在构建一个小型应用程序来点餐。在 HTML 的第一个循环中,我添加了一个带有 php 的片段到 select 特定顺序的 1 到 5 个元素:

<input type="checkbox" class="showHide" value="show">Spinach Dip Platter <span>.99 each</span>
<select name="spinach">
<option selected value> -- Select Quantity -- </option><?php
for ($i=0; $i<=5; $i++)
{
?>
<option value="<?php echo $i;?>"><?php echo $i;?></option>
<?php
}
?>
</select>

然后,取决于客户要购买多少商品 select 我想给另一个循环一个特定数量的限制。假设他将 select 2 件商品,在下一个循环中(实际上是三个不同面包的循环)我的客户只能 select 2 件商品,而不是 5 件:

<label class="abread">
    <input type="checkbox" class="showHidetwo" value="show" name="alligatorbread">With Alligator or Turtle Bread add .00<br>
    <p>Turtle Bread</p>
    <select name="turtle">
        <option selected value> -- Select Quantity -- </option><?php
        for ($i=0; $i<=5; $i++)
        {
            ?>
            <option value="<?php echo $i;?>"><?php echo $i;?></option>
            <?php
        }
        ?>
    </select>
    <p>Aligator Bread</p>
    <select name="alligator">
        <option selected value> -- Select Quantity -- </option><?php
        for ($i=0; $i<=5; $i++)
        {
            ?>
            <option value="<?php echo $i;?>"><?php echo $i;?></option>
            <?php
        }
        ?>
    </select>
    <p>Spider Bread</p>
    <select name="spider">
        <option selected value> -- Select Quantity -- </option><?php
        for ($i=0; $i<=5; $i++)
        {
            ?>
            <option value="<?php echo $i;?>"><?php echo $i;?></option>
            <?php
        }
        ?>
    </select>
</label>

现在数字设置为 5,但我想添加一个动态变量,该变量将取决于第一个循环 (name="spinach"),它将限制设置为以下循环。可能吗?

更新:

我试过类似的东西:

<label class="tray-items">
    <input type="checkbox" class="showHide" value="show">Spinach Dip Platter <span>.99 each</span>
    <p class="spinach">Sourdough</p>
    <select name="spinach_sour">
        <option selected value> -- Select Quantity -- </option><?php
        for ($i=0; $i<=5; $i++)
        {
            ?>
            <option value="<?php echo $i;?>"><?php echo $i;?></option>
            <?php
        }
        $spinach_sour = $_GET["spinach_sour"]; 
        ?>
    </select>
    <p class="spinach">Pumpernickle</p>
    <select name="spinach-pumper">
        <option selected value> -- Select Quantity -- </option><?php
        for ($i=0; $i<=5; $i++)
        {
            ?>
            <option value="<?php echo $i;?>"><?php echo $i;?></option>
            <?php
        }
        $spinach_pumper = $_GET["spinach_pumper"];
        ?>
    </select>
    <label class="abread">
        <input type="checkbox" class="showHidetwo" value="show" name="alligatorbread">With Alligator or Turtle Bread add .00<br>
        <p>Turtle Bread</p>
        <select name="turtle">
            <option selected value> -- Select Quantity -- </option><?php
            for ($i=0; $i<=$spinach_pumper; $i++)
            {
                ?>
                <option value="<?php echo $i;?>"><?php echo $i;?></option>
                <?php
            }
            ?>
        </select>
        <p>Aligator Bread</p>
        <select name="alligator">
            <option selected value> -- Select Quantity -- </option><?php
            for ($i=0; $i<=5; $i++)
            {
                ?>
                <option value="<?php echo $i;?>"><?php echo $i;?></option>
                <?php
            }
            ?>
        </select>
        <p>Spider Bread</p>
        <select name="spider">
            <option selected value> -- Select Quantity -- </option><?php
            for ($i=0; $i<=5; $i++)
            {
                ?>
                <option value="<?php echo $i;?>"><?php echo $i;?></option>
                <?php
            }
            ?>
        </select>
    </label>
</label>

本质上,我尝试在全局获取中获取第一个变量,在分配给全局变量后,我尝试导出值并在第二个循环的第一个循环中重用,但它没有用。

这是可能的。将您想要的数字保存到一个变量名中,您说的是菠菜,只需将您的 for 循环更改为:

for ($i=0; $i <= $spinach; $i++)

确保给菠菜赋值,否则你会运行出问题。

Matto,您可以在 for 循环中使用变量。

//make sure to declare your variable, but after that you can set the 
value to whatever you like

$var = 0;

for ($i=0; $i<$var; $i++) {
    //code goes here
}