我需要弄清楚如何构建一个循环,其数量将取决于之前在另一个循环中选择的数字。
我正在建立一个小型应用程序来订购一些食物。在HTML的第一个循环中,我添加了一个带有php的代码片段,用于选择特定订单的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中获取第一个变量,在分配给全局变量之后,我尝试导出值并在第二个循环的第一个循环中重用但是它不起作用。
答案 0 :(得分:2)
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
}
答案 1 :(得分:1)
这是可能的。将您想要的数字保存到变量名称中,您说这将是菠菜,只需将您的for循环更改为:
public class DartsGhentPipeline : IHttpModule
{
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += Context_PreRequestHandlerExecute;
}
private void Context_PreRequestHandlerExecute(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpRequest request = application.Request;
HttpResponse response = application.Response;
Page page = application.Context.CurrentHandler as Page;
if (page == null)
return;
bool requireSSL = page.GetType().GetCustomAttributes(typeof(RequireSSL), true).Length > 0;
bool isSecureConnection = request.IsSecureConnection;
string url = string.Format("{0}://www.dartsghent.be{1}", requireSSL ? Uri.UriSchemeHttps : Uri.UriSchemeHttp, HttpContext.Current.Request.RawUrl);
if (requireSSL != isSecureConnection)
response.RedirectPermanent(url);
}
public void Dispose() { }
}
确保菠菜有一个值,否则你会遇到问题。