【问题标题】:Number of items in a php loop depend on another loopphp循环中的项目数取决于另一个循环
【发布时间】:2017-06-19 18:53:55
【问题描述】:

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

我正在构建一个小应用程序来订购食物。在 HTML 的第一个循环中,我添加了一个带有 php 的 sn-p 来选择特定顺序的 1 到 5 个元素:

<input type="checkbox" class="showHide" value="show">Spinach Dip Platter <span>$17.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>

然后,取决于客户将选择多少项目,我想限制另一个循环,一定数量。假设他将选择 2 个项目,在下一个循环中(实际上是三个不同面包的循环)我的客户只能选择 2 个项目,而不是 5 个:

<label class="abread">
    <input type="checkbox" class="showHidetwo" value="show" name="alligatorbread">With Alligator or Turtle Bread add $3.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>$17.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 $3.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>

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

【问题讨论】:

  • 好吧,把for ($i=0; $i&lt;=5; $i++)换成for ($i=0; $i&lt;=$spinach; $i++)
  • 当然可以,但是如何保存第一个循环中的值以重复使用它? $var = $_GET["菠菜"]; ?

标签: php loops dynamic-variables


【解决方案1】:

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
}

【讨论】:

  • 第一步呢:
  • 您需要提交表单、使用 javascript 或启动会话并将其存储在会话变量中。此外,您选择的第一个选项不正确。如果您没有值,请不要包含值,或者如果您想将其设置为无值,请将其设置为空字符串。
【解决方案2】:

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

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

确保给菠菜一个值,否则你会遇到问题。

【讨论】:

  • 我错过了第一步,而且现在我在第一个选择中有两个循环。如何存储第一个变量?
猜你喜欢
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多